MacBook Pro 只有四个 USB Type-C 接口是否错了?

一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自己的舒适区,社会丝毫没有创新与进步而言。

其实, USB Type-C 接口协议在三年前几个科技巨头公司就参与制定了协议,并答应要在自家的产品上推广它,但谁都怕一下子在自家产品上升级 USB Type-C 接口被消费者骂出翔进而影响产品销量,这时候,苹果公司跳出来了干了这件事,在去年的 MacBook 升级中就已经把 USB Type-A 取消了,好像大家也并没用过多抵触,可能是使用的人少的原因,但是就在刚刚发布的 MacBook Pro 中取消了全部接口,仅仅只有四个 USB Type-C 了,然后大家都莫名高潮了,说「什么苹果智障!不考虑消费者!出门要带一堆转接头!!苹果就是为了赚配件的钱!!新款手机连接不是新款电脑!!我要去买老款的 MacBook Pro !!!库克是个同性恋!!!苹果吃枣药丸!!!」。

好吧,你们赢了。

如果你作为消费者来仔细想想,当然你本来就是消费者,可以正反随便插、想怎么插怎么插,晚上也不用开灯就能插,速度而且快的惊人,这个口用处多的数不清,想怎么用怎么用,你现在会怎么想?反正现在好多 Android 手机已经是 USB Type-C 了。

FluentScheduler 是什么?

Automated job scheduler with fluent interface.

这是作者在 Github 上的介绍,就是一个定时任务管理器。在 .Net 下类似的有微软的 Timer 、 Quartz.NET 、 FluentScheduler 以及Windows服务等,关于 Quartz.NET 的使用几乎和 Java 下的 Quartz 没什么区别,我之前写过一篇 Spring 使用 Quartz 任务调度定时器 是关于 Quartz 的。

定时任务或者说作业调度,可能也只有在你指定一个时间做统计、发邮件或者一些你想完成的业务逻辑时有用,这也是它出现的目的。

如何使用 FluentScheduler ?

我是推荐你去作者的 Github 去看看源码或例子,地址:https://github.com/fluentscheduler/FluentScheduler
当然,这里我用作者的例子做了演示和翻译,保证谁都能看的懂。

一、安装FluentScheduler程序包
打开程序包管理控制台,输入Install-Package FluentScheduler即可。步骤:状态栏选择 工具 - 库程序包管理器 - 程序包管理控制台,如下图:

输入Install-Package FluentScheduler

二、写代码
我这里只简单贴一下作者的示例代码,更推荐你去 Github 看,但我随手翻译了一下,或许更容易阅读一些。

public class Demo : Registry
{
public Demo()
{
// Schedule an IJob to run at an interval
// 立即执行每两秒一次的计划任务。(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。)
Schedule<MyJob>().ToRunNow().AndEvery(2).Seconds(); // Schedule an IJob to run once, delayed by a specific time interval
// 延迟一个指定时间间隔执行一次计划任务。(当然,这个间隔依然可以是秒、分、时、天、月、年等。)
Schedule<MyJob>().ToRunOnceIn(5).Seconds(); // Schedule a simple job to run at a specific time
// 在一个指定时间执行计划任务(最常用。这里是在每天的下午 1:10 分执行)
Schedule(() => Trace.WriteLine("It's 1:10 PM now.")).ToRunEvery(1).Days().At(13, 10); Schedule(() => { // 做你想做的事儿。
Trace.WriteLine("It's 1:10 PM now."); }).ToRunEvery(1).Days().At(13, 10); // Schedule a more complex action to run immediately and on an monthly interval
// 立即执行一个在每月的星期一 3:00 的计划任务(可以看出来这个一个比较复杂点的时间,它意思是它也能做到!)
Schedule<MyComplexJob>().ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0); // Schedule multiple jobs to be run in a single schedule
// 在同一个计划中执行两个(多个)任务
Schedule<MyJob>().AndThen<MyOtherJob>().ToRunNow().AndEvery(5).Minutes(); } } public class MyJob : IJob
{ void IJob.Execute()
{
Trace.WriteLine("现在时间是:"+DateTime.Now);
}
} public class MyOtherJob : IJob
{ void IJob.Execute()
{
Trace.WriteLine("这是另一个 Job ,现在时间是:" + DateTime.Now);
}
} public class MyComplexJob : IJob
{ void IJob.Execute()
{
Trace.WriteLine("这是比较复杂的 Job ,现在时间是:" + DateTime.Now);
}
}

三、初始化
Global.asax中加入一句

JobManager.Initialize(new Demo());

上面是简单的使用,其实已经足够了,当然还有更多变态的需求,作者也在文档里写了,比如这个:你想执行一个计划任务,每周一 14:00 运行。但现在是星期一上午 10:00 ,那你的程序应该在今天运行还是在下周星期一?这里用到了 ToRunEvery
还有并发任务的处理,有兴趣可以去看看。

总结一下

FluentScheduler 是 .Net 下,可以让你轻松实现定时任务的工具,不需要再去写Windows服务了,更重要的是时间设置起来灵活很多,定时任务难点不就是在这么。

http://www.cnblogs.com/mafly/p/FluentScheduler.html

【转】ASP.NET MVC 使用 FluentScheduler 定时器计划任务的更多相关文章

  1. ASP.NET MVC 使用 FluentScheduler 定时器计划任务

    MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自 ...

  2. MVC 使用 FluentScheduler 定时器计划任务

    MVC 使用 FluentScheduler 定时器计划任务 MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲 ...

  3. FluentScheduler定时器计划任务

    http://www.cnblogs.com/lgxlsm/p/6734011.html 用了FluentScheduler后,再也比想用timer计时器了. FluentScheduler 是 .N ...

  4. ASP.NET MVC 使用FluentScheduler做定时任务

    源代码地址: https://github.com/fluentscheduler/FluentScheduler 使用NuGet安装FluentScheduler 这是我实际项目中用到的代码,也可看 ...

  5. ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器

    ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器一:闲谈一下:1.现在任务跟踪管理系统已经开发快要结束了,抽一点时间来写一下,想一想自己就有成就感啊!!  ...

  6. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 1

    原文地址:http://ddmvc4.codeplex.com/ 原文名称:Design and Develop a website using ASP.NET MVC 4, EF, Knockout ...

  7. ASP.NET MVC 5 02 - ASP.NET MVC 1-5 各版本特点

    参考书籍:<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业 ...

  8. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 七天学会ASP.NET MVC(七)——创建单页应用

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

随机推荐

  1. gpg: no valid OpenPGP data found

    gpg: no valid OpenPGP data found

  2. js为select添加option

    <select id="shi"> function loadInfo(){ var shengId=document.getElementById("she ...

  3. ISE和Modelsim联合仿真(转)

    相信很多人会遇到过这个问题,不知如何让ISE调用Modelsim进行仿真.我也迷糊了不少时间,查查找找,终于弄明白了,所以有了本文,和大家分享一下.我尽量讲得详细点儿,多多上图. 我的环境:Windo ...

  4. Java循环语句 for

    语法: 特点:相比 while 和 do...while 语句结构更加简洁易读 例如,输出 1000 遍"我爱慕课网",使用 for 的实现代码为: 需要留心的几个小细节: 1. ...

  5. 按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n!);

    package com.homework2; public class ClassA implements InterfaceA { @Override public int method(int n ...

  6. Java安全之对称加密、非对称加密、数字签名

    原文地址: http://blog.csdn.net/furongkang/article/details/6882039 Java中加密分为两种方式一个是对称加密,另一个是非对称加密.对称加密是因为 ...

  7. ASP终极防下载(转)

    自从搞ASP+ACCESS没少为避免数据库下载而伤过神,网上的奇淫技巧更是数不胜数,本文就是同大家共同探讨各路前辈的留下的秘笈并指中其中的优劣,最后为大家提供一种最佳的解决方案. 一.开篇 自从搞AS ...

  8. C#实现在Winform中嵌入Word和Excel

    http://www.cnblogs.com/wuzi145/archive/2012/05/08/2490680.html 在此只是介绍一个简单控件:dsoframer.ocx的使用,这个控件需要通 ...

  9. 给定表达式[x/2] + y + x * y, 其中x,y都是正整数。

    改进了一下,不过还是要十多秒吧. package com.boco.study; import java.math.BigDecimal; import java.util.Calendar; imp ...

  10. 使用Twisted进行socket编程

    你的协议处理类通常是twisted.internet.protocol.Protocol的子类.许多协议处理继承于该类或者比该类更加方便的该类的子类.一个protocol类的实例可能反复连接,也可能在 ...