C#定时任务的偷懒实现

通常会有些定时任务的工作,例如每分钟统计一下xxx用户的xxx数量 或者 定时拉取下数据 之类的任务。

通常要实现定时调度功能和控制线程是否可以并发执行。

所以通常一个简单的小项目搞成大项目,但是使用FluentScheduler就会 好得多

项目链接 https://github.com/fluentscheduler/FluentScheduler

例如我需要一个任务 每秒跑一次 如果这次没跑完 下次不执行:

                public static void Main(string[] args)
		{
			//Console.WriteLine("Hello World!");
			JobManager.AddJob(() => new TestService().xxxx(),
			                  (s) => s.NonReentrant().ToRunEvery(1).Seconds());
			Console.ReadLine();
		}

  亦或者 我需要一个任务 每天9点跑一次

          public static void Main(string[] args)
		{
			//Console.WriteLine("Hello World!");
			JobManager.AddJob(() => new TestService().xxxx(),
			                  (s) => s.NonReentrant().ToRunEvery(1).Days().At(9,0));
			Console.ReadLine();
		}

  

时间: 2024-10-27 11:39:39

C#定时任务的偷懒实现的相关文章

cron-您的定时任务真的执行了吗

今日上午,生产环境怀疑某个cron定时任务没有执行,所以需要分析日志,详细过程如下,记录只为以后工作更加效率,笔者小白,请大神指点. 普及知识: cron是一种机制,crontab是指令        它可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制  1.取一段时间日志 语法:sed -n '/开始时间/,/结束时间/p' filename sed -n '/Sep 20 08:50:*/,/Sep 20 09:50:*/p' /var/log/

Linux的定时任务

分两种:一次性的定时任务.周期性的定时任务. 一次性的定时任务,又称at定时任务,命令为atd ,这里d是deamon的首字母,守护的意思,指守护进程:其实很多程序都是以d结尾,如httpd.memcached等等. 一般Linux都默认安装了atd服务,可以通过 chkconfig --list | grep at来查看(据说CentOS 7已经改变,需要使用systemctl来查看,自行查找),或者,使用service atd status来查看. 周期性的定时任务,crontab(使用qu

Spring quartz定时任务service注入问题

今天想单元测试一下spring中的quartz定时任务,一顿折腾,到最后总是发现job类里注入的service为null.一开始还以为spring的配置问题,各种找原因,最后还是确定是没有注入. 就去网上搜搜吧.也找出来一些眉目.简单的理解这个原因是job是在quartz中实例化出来的,不受spring的管理.所以就导致注入不进去了.参考这个文章 http://www.tuicool.com/articles/Qjyamu 找着试试的态度,就按照文章里说的.new一个类 public class

Spring定时任务的实现

项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍.一.分类从实现的技术上来进行分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行.一般用的较少,这篇文章将不做详细介绍.使用Quar

在Linux下利用crond实现一个定时任务并完成一个守护(精灵)进程

一.利用crond实现一个定时任务       在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. crontab支持两种状态: a.直接编写计划任务: b.使用目录的方式,放在目录里面的都会定时执行,定时目录可在/etc/crontab中设定. 为当前用户创建cron服

定时任务Runnable

说明: 最近做cms想本地修改模板,然后把最新的模板内容存到数据中,所以想到Runnable写个定时任务: 思路: 每隔一分钟查看模板是否有改动,如果有改变执行保存到数据库中: 定时任务核心代码: package com.aih.common.utils; import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.Ti

Linux常用指令---定时任务

linux定时任务crontab命令选项基本只有对用户操作选项:-u 指定用户-l 列出某用户任务计划-r 删除某用户任务-e 编辑某用户任务 查看某一用户的定时任务crontab -u root -l 所要查看所有用户只能根据/etc/passwd文件用户名枚举了用脚本用户定时任务/var/spool/cron/里, 作root去看:cd /var/spool/croncat * eg:如下 12:15,12:30分时将两种文件先生成在238.213这台机器上,在12:45分时将其同步到239

使用轻量级Spring @Scheduled注解执行定时任务

WEB项目中需要加入一个定时执行任务,可以使用Quartz来实现,由于项目就一个定时任务,所以想简单点,不用去配置那些Quartz的配置文件,所以就采用了Spring @Scheduled注解来实现了定时任务.在这里做个备注. spring配置文件  xmlns中加入一段: xmlns:task="http://www.springframework.org/schema/task" 然后xsi:schemaLocation多加下面的内容: http://www.springframe

170627、springboot编程之定时任务

springboot定时任务,比较简单! 1.编写DemoSchedule.java类 package com.rick.common.schedule; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annota