学习MVC之租房网站(十一)-定时任务和云存储
学习MVC之租房网站(十一)-定时任务和云存储
在上一篇<学习MVC之租房网站(十)-预约和跟单>完成了用户的预约看房以及后台操作员对预约看房的跟单操作。接下来会做定时发邮件的功能,并且用云存储进行上传图片的保存。
一 定时任务和邮件发送
a) 通过实现定时发邮件这个功能,在学习Quartz.Net的同时也能用用邮件发送。Quartz.Net支持各种各样灵活的定时配置,以天、周、月的周期都能支持。使用Quartz的时候,要涉及三个方面:IScheduler、Job和Trigger,自己写的任务作为Job,定时配置放在Trigger中,到了指定时间点时,Trigger会出发Job,大概就是这样,从下面可以看到多种定时方式

目前定时发邮件是在每天的固定时间点,向特定汇报房源的变化情况,只用到DailyAtHourAndMinute,其它的等用到了再看,这真是很好的工具。
要注意的是,Job是在独立的线程工作的,所以IOC容器的对象需要手动解析,另外要做好异常捕获和日志记录。
b) 发邮件的话,c#有一套完整的方法,Smtp服务器等使用了126的

二 UEditor和云存储
这儿主要是为了学习云储存并试用云存储服务,把从UEditor上传的房源图片内容保存到七牛云,之前都是保存在本地服务器的。把图片等尺寸大的文件放到专门的服务器已经是很普遍的做法,这可以保证本地服务器的流畅运行,节省本地服务器流量,而且专业的云存储服务商还提供CDN加速功能。
首先要配置UEditor,让上传的图片保存到七牛云而不是本地。在/net/Config.json中配置"imageUrlPrefix"的值为自己七牛云的存储空间地址;上传逻辑在/net/App_Code/UploadHander.cs,这儿根据七牛云的demo替换UEditor原本的代码,并赋值自己的AK、SK,Access/Secret Key是上传用得一对密钥。

但好像在上面不能自由创建文件夹,不能按照自定义的层级存储文件,只给提供了 “存储空间”一个层级。
按照上面的做法,在网页的内容管理就可以看到上传结果了

挺好用的,以后网站图片就都保存在这儿了。
注:
课程内容来自如鹏网(www.rupeng.com),专注于大学生就业的在线教育平台;
ASP.NET MVC课程 http://www.rupeng.com/News/9/640.shtml
学习MVC之租房网站(十一)-定时任务和云存储的更多相关文章
- 学习MVC之租房网站(十二)-缓存和静态页面
在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和 ...
- 学习MVC之租房网站(二)-框架搭建及准备工作
在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库.配置AdminWeb和FrontWeb 一.编 ...
- 学习MVC之租房网站(三)-编写实体类并创建数据库
在上一篇<学习MVC之租房网站(二)-框架搭建及准备工作>中,搭建好了项目框架,并配置了EF.Log4Net和进程外Session.接下来会编写Eneity类并采用CodeFirst的方式 ...
- 学习MVC之租房网站(四)-实现Service层并进行单元测试
在上一篇<学习MVC之租房网站(三)-编写Eneity类并创建数据库>中,记录了编写Eneity类并采用CodeFirst的方式创建数据库的过程,接下来就到了Service层的实现了,并且 ...
- 学习MVC之租房网站(五)-权限、角色、用户管理
在上一篇<学习MVC之租房网站(四)-实现Service层并进行单元测试>中,记录了实现Service层并进行单元测试的过程,接下来该到"正题"-MVC了,也就是UI层 ...
- 学习MVC之租房网站(六)-用户登录和权限控制
在上一篇<学习MVC之租房网站(五)-权限.角色.用户管理>完成了权限.角色.用户的增删改查,现在将基于前面完成的内容,进行后台用户登录和权限控制功能的开发. 一.用户登录 用户登录涉及到 ...
- 学习MVC之租房网站(七)-房源管理和配图上传
在上一篇<学习MVC之租房网站(六)-用户登录和权限控制>完成了后台用户登录和权限控制功能的开发,接下来要完成的是房源的管理,用户在后台新增.编辑房源信息,供前台用户操作. 一 房源管理 ...
- 学习MVC之租房网站(八)- 前台注册和登录
在上一篇<学习MVC之租房网站(七)-房源管理和配图上传>完成了在后台新增.编辑房源信息以及上传房源配图的功能.到此后台开发便告一段落了,开始实现前台的功能,也是从用户的登录.注册开始. ...
- 学习MVC之租房网站(九)-房源显示和搜索
在上一篇<学习MVC之租房网站(八)- 前台注册和登录>完成了前台用户的注册.登录.重置密码等功能,然后要实现与业务相关的功能,包括房源的显示.检索等. 一 房源显示 房源显示内容较多,涉 ...
随机推荐
- 阿里Java开发规范&谷歌Java开发规范&华为Java开发规范&Tab键和空格比较&Eclipse的Tab键设置 总结
现在收集到如下有用的信息: 阿里巴巴公开的Java开发规范:https://yq.aliyun.com/articles/69327?utm_content=m_10088 google公开的Java ...
- ElasticSearch入门3: Spring Boot集成ElasticSearch
第一步:创建项目elasticsearch 编写pom文件 <?xml version="1.0" encoding="UTF-8"?> <p ...
- ASP.NET Core 与 .NET Core 演变与基础概述
https://github.com/dotnet/corehttps://github.com/aspnet/home 今天看到 .NET Core 的改名计划,感觉跨平台的时代快要来了,从之前的 ...
- 如何用Python来处理数据表的长宽转换(图文详解)
不多说,直接上干货! 很多地方都需用到这个知识点,比如Tableau里. 通常可以采取如python 和 r来作为数据处理的前期. Tableau学习系列之Tableau如何通过数据透视表方式读取 ...
- JavaScript基础(一)概述
JavaScript 概述 JS作用 验证表单(以前的网速慢) 页面特效(PC端的网页效果) 移动端(移动web和app) 异步和服务器交互(AJAX) 服务端开发(nodejs) 语言类型 js是一 ...
- java操作特殊字符需要注意的点
在使用字符串替换,分离时 我们如果想替换一个字符串中的问号,我们就不能直接写问号,而要写[?] 实例如下 str = str.replaceAll("\""," ...
- Java之建造者模式(Builder Pattern)(转)
1.概念 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. [构建与表示分离,同构建不同表示] 与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者 ...
- Linux-(inotify-tools&rsync)
inotifywait命令 mac中的是:fswatch,fsevents-tools. 1.命令格式: inotifywait [参数] [events] [targetDir] 2.命令功能: 平 ...
- Async异步编程入门示例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- apk的php解析
<?php/****************************************************** * Android APK File Parser * Author: ...