Quartz.Net和队列应用demo
using System;
using System.Collections.Generic;
using System.Threading; namespace ConsoleApplication1
{
public static class Class1
{
static Queue<string> MsgQueue = new Queue<string>();
//创建一个没有其他用途的对象作为锁,微软官方推荐做法
private static Object thisLock = new Object(); static Class1()
{
ThreadPool.QueueUserWorkItem(q =>
{
while (true)
{
lock (thisLock)
{
if (MsgQueue.Count > )
{
string msg = MsgQueue.Dequeue();
//把内容记录起来之类的操作...
}
else
{
//队列中没有东西,就让线程休息下
Thread.Sleep();
}
}
}
});
} public static void Insert(string msg)
{
lock (thisLock)
{
MsgQueue.Enqueue(msg);
}
}
}
}
队列demo
Quartz.Net和队列结合控制台demo
using Quartz;
using Quartz.Impl; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
for (int i = ; i <= ; i++)
{
TestJob.Insert($"str{i} ");
} //计划者
IScheduler sched = StdSchedulerFactory.GetDefaultScheduler();
//作业
IJobDetail job1 = new JobDetailImpl("Job1", "JobGroup1", typeof(TestJob));
//触发器
ITrigger trigger1 = TriggerBuilder.Create()
.WithIdentity("Trigger1", "TriggerGroup1")
.StartNow() //现在开始
.WithSimpleSchedule(x => x
.WithIntervalInSeconds() //5秒一次
.RepeatForever()) //不断重复
.Build(); ////存值
//job1.JobDataMap.Add("key1", "value1"); sched.ScheduleJob(job1, trigger1);
sched.Start();
Console.Read();
}
}
}
using Quartz;
using System;
using System.Collections.Generic;
using System.Threading; namespace ConsoleApplication1
{
public class TestJob : IJob //想成为作业就要实现此接口
{
static Queue<string> MsgQueue = new Queue<string>();
private static Object thisLock = new Object(); public static void Insert(string msg)
{
lock (thisLock)
{
MsgQueue.Enqueue(msg);
}
} public void Execute(IJobExecutionContext context)
{
lock (thisLock)
{
if (MsgQueue.Count > )
{
string msg = MsgQueue.Dequeue();
Console.WriteLine(msg + DateTime.Now.ToString());
}
else
{
//队列中没有东西,就让线程休息下
Thread.Sleep();
}
} ////取值
//JobDataMap dataMap = context.JobDetail.JobDataMap;
//string content = dataMap.GetString("key1");
//Console.WriteLine("作业执行,jobSays:" + content);
}
}
}
Quartz.Net和队列应用demo的更多相关文章
- lesson2:java阻塞队列的demo及源码分析
本文向大家展示了java阻塞队列的使用场景.源码分析及特定场景下的使用方式.java的阻塞队列是jdk1.5之后在并发包中提供的一组队列,主要的使用场景是在需要使用生产者消费者模式时,用户不必再通过多 ...
- java类中使用quartz,设置自动任务Demo
package com.tech.jin.jobScheduler; import java.text.ParseException; import java.util.ArrayList; impo ...
- 消息队列 简单demo
可以使用Windows自带计划任务执行Receive操作. 控制面板=>管理工具 计划任务 =>创建计划任务 step : http://www.2cto.com/kf/201402/27 ...
- Java Design Demo -简单的队列-异步多任务队列(java android)
简单的单线程队列 -- 工作的时候遇到劣质打印机.给打印机发消息,打印机就会打印,如果在打印机还在打印的时候,就 再发消息打印,就会出现消息丢失.所以需要给上一个任务一些处理的间隔时间. 单线程的消息 ...
- 数据结构之循环队列Demo
循环队列 比较简单,循环队列主要是判断队满.队空.有效元素个数 画图说明: 假设:队的长度为5(0-4) 但是实际maxsize为6,需要一个预留空间(不存储元素)做计算 继续添加3个元素后: 出队一 ...
- PHP的轻量消息队列php-resque使用说明
日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可. 消息队列处理后台任务带来的问题 项目中经常会有后台运行任务的需求,比如发送邮件时,因为要 ...
- 文件 FIFO队列
<?php /** * Filefifo.php 文件型FIFO队列 */ class Filefifo { /** * $_file_data, 数据文件的路径 */ private $_fi ...
- PetShop 4.0学习笔记:消息队列MSMQ
直到今天才知道,在我们每天都在用的Window系统里还有这么好用的一个编程组件:消息队列.它能够解决在大数据量交换的情况下的性能问题,特别是BS系统的数据库性能.而且它的异步处理方式能给程序员最大的便 ...
- CoreJava_线程并发(堵塞队列):在某个目录下搜索含有某keyword的文件
Java多线程编程是很考验一个程序猿水平的. 传统的WEB程序中.由于框架提供了太多的健壮性.并发性.可靠性的支持,所以我们都是将全部的注意力放到了业务实现上.我们不过依照业务逻辑的要求.不停的积累自 ...
随机推荐
- 僵进程与SIGCHLD信号
参考: https://www.cnblogs.com/webor2006/p/4014586.html wait()和waitpid()的参数解析:https://blog.csdn.net/csd ...
- 彩票历史记录分析工具 -- 通过实例学习wpf开发
前言 虽然本人对彩票不感兴趣,仍然有不少人对此情有独钟.他们花大量时间精力去分析彩票的历史记录,企图发现规律,为下一次投注做指导,希望“赢的“”概率增大.不管研究历史记录是否有意义,我用软件实现了对彩 ...
- shelve模块、re模块
在模糊匹配时使用 1
- 基于python的分治法和例题
分治法 分治法的核心 分:将一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题 治:最后的子问题,可以很容易的直接求解 合:所有子问题的解合并起来就是原问题的解 分治法的特征 ...
- 【Composer】PHP开发者必须了解!
Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Composer是必须的. 对于使用者来说Composer非常的简单,通过简单的一条命令将需要的 ...
- Visual Studio 2017 安装心得
既然VS2017已经发布了,就想安装一下试试,先卸载VS2015, 网上有个完全卸载的东东,https://github.com/Microsoft/VisualStudioUninstaller/r ...
- 20191121-9 Scrum立会报告+燃尽图 05
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10069 一: 组名:组长组 组长:杨天宇 组员:魏新 罗杨美慧 王歆 ...
- 牛客练习赛$48E$ 小$w$的矩阵前$k$大元素 堆
正解:堆 解题报告: 传送门$QwQ$ 考虑把$b$从大往小排序,然后把$a_1+b_1,a_2+b_1,...,a_n+b_1$丢到堆里,顺便记录下$b$的下标 然后每次拿出一个最大值,设为$mx= ...
- 洛谷训练新手村之“BOSS战-入门综合练习2”题解
P1426 小鱼会有危险吗 题目链接:https://www.luogu.com.cn/problem/P1426 题目大意: 有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每 ...
- Codeforces Round #519 by Botan Investments(前五题题解)
开个新号打打codeforces(以前那号玩废了),结果就遇到了这么难一套.touristD题用了map,被卡掉了(其实是对cf的评测机过分自信),G题没过, 700多行代码,码力惊人.关键是这次to ...