当前位置: 首页 > news >正文

温州好的网站推广郑州出租车网

温州好的网站推广,郑州出租车网,自己做网站是不是需要写代码,h5网站开发定制Hangfire 文档 Hangfire 中文文档 Hangfire GitHub使用示例源码 在线Cron表达式生成器 ● Hangfire允许您以非常简单但可靠的方式在请求管道之外启动方法调用。 这种 后台线程 中执行方法的行为称为 后台任务。 ● 它是由:客户端、作业存储、服务端 组成的。 ● Hangfire可以在…Hangfire 文档 Hangfire 中文文档 Hangfire GitHub使用示例源码 在线Cron表达式生成器  ● Hangfire允许您以非常简单但可靠的方式在请求管道之外启动方法调用。 这种 后台线程 中执行方法的行为称为 后台任务。 ● 它是由:客户端、作业存储、服务端 组成的。 ● Hangfire可以在 ASP.NET Web应用程序 、非ASP.NET Web应用程序、控制台应用程序 或 Windows服务 中使用。 ● 可以使用Hangfire创建任何类型的后台作业 fire-and-forget (自助调用), delayed (在一段时间后执行调用)、 recurring (按小时每天执行方法等) ● Hangfire将后台任务及相关的其他信息保存到持久库SQL ServerMySqlRedisMemoryStorage 1、管理 NuGet 程序包 Hangfire.AspNetCore Hangfire.SqlServer Hangfire.MySql Hangfire.MemoryStorage Hangfire.MySqlStorage Hangfire.PostgreSql 2、Program.cs using Hangfire; using Hangfire.MemoryStorage; using Hangfire.Redis.StackExchange; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting.Server; using Microsoft.Extensions.Configuration;var builder WebApplication.CreateBuilder(args); var Configuration builder.Configuration;// Add services to the container.#region Add Hangfire services. // MemoryStorage builder.Services.AddHangfire(configuration configuration.UseMemoryStorage()); //builder.Services.AddHangfire(configuration configuration.UseStorage(new MemoryStorage()));// Redis //builder.Services.AddHangfire(x //{ // RedisStorageOptions options new RedisStorageOptions() // { // Prefix hangfire:, //键前缀 //    }; // x.UseRedisStorage(Configuration.GetValuestring(ConnectionStrings:Redis:ConnectionString), options); //});// SqlServer 方式1 //builder.Services.AddHangfire(configuration configuration.UseSqlServerStorage(config.GetConnectionString(HangfireConnection)));// SqlServer 方式2 //builder.Services.AddHangfire(configuration configuration // .SetDataCompatibilityLevel(CompatibilityLevel.Version_170) // 设置数据兼容级别 // .UseSimpleAssemblyNameTypeSerializer() // 使用简单程序集名称类型序列化程序 // .UseRecommendedSerializerSettings() // 使用推荐的序列化设置 // .UseSqlServerStorage(config.GetValuestring(ConnectionStrings:BaseDb:ConnectionString), new SqlServerStorageOptions //数据库设置 // //.UseSqlServerStorage(config.GetConnectionString(HangfireConnection), new SqlServerStorageOptions // { // TransactionIsolationLevel IsolationLevel.ReadCommitted, // 事务隔离级别。默认值为读提交。 // TransactionTimeout TimeSpan.FromMinutes(1), // 事务超时。默认为1分钟 // JobExpirationCheckInterval TimeSpan.FromHours(1), // 作业过期检查间隔管理过期记录。默认为1小时 // CountersAggregateInterval TimeSpan.FromMinutes(5), // 间隔到聚合计数器。默认为5分钟 // PrepareSchemaIfNecessary true, // 如果设置为true则创建数据库表。默认值为true // CommandBatchMaxTimeout TimeSpan.FromMinutes(5), // 命令批处理最大超时时间 // SlidingInvisibilityTimeout TimeSpan.FromMinutes(5), // 滑动超时时间 // QueuePollInterval TimeSpan.Zero, // 作业队列轮询间隔。默认值为15秒 // UseRecommendedIsolationLevel true, // 是否使用建议的隔离级别 // DisableGlobalLocks true, // 是否禁用全局锁,需要迁移到模式7 // DashboardJobListLimit 50000, // 仪表板作业列表上限。默认值为50000 // }));// Add the processing server as IHostedService builder.Services.AddHangfireServer(); #endregionbuilder.Services.AddControllers();var app builder.Build();// Configure the HTTP request pipeline.//Hangfire 仪表盘 //访问地址 http://localhost:5000/hangfire app.UseHangfireDashboard();app.UseAuthorization();#region Hangfire// 基于队列的任务处理 var jobId BackgroundJob.Enqueue(() Console.WriteLine(即时任务));// 延迟任务执行 var jobId2 BackgroundJob.Schedule(() Console.WriteLine(延迟任务), TimeSpan.FromMilliseconds(10));// 循环任务执行最小单位是分钟可以自定义复杂模式 //RecurringJob.AddOrUpdate(myrecurringjob, () Console.WriteLine(重复任务), Cron.Minutely); RecurringJob.AddOrUpdate(myrecurringjob, () Console.Write(重复任务每1分钟执行任务), 0 0/1 * * * ?);// 延续性任务执行在第一个任务执行完之后紧接着再次执行另外的任务 BackgroundJob.ContinueJobWith(jobId2, () Console.WriteLine(jobId2执行完了再继续执行));using (var server new BackgroundJobServer()) {BackgroundJob.Enqueue(() Console.WriteLine(Simple111)); }#endregionapp.MapControllers();#region Hangfire app.Map(/index, r {r.Run(async context {//任务每分钟执行一次RecurringJob.AddOrUpdate(() Console.WriteLine($ASP.NET Core LineZero), Cron.Minutely());await context.Response.WriteAsync(ok);}); });app.Map(/one, r {r.Run(context {//任务执行一次BackgroundJob.Enqueue(() Console.WriteLine($ASP.NET Core One Start LineZero{DateTime.Now}));return context.Response.WriteAsync(ok);}); });app.Map(/await, r {r.Run(context {//任务延时两分钟执行BackgroundJob.Schedule(() Console.WriteLine($ASP.NET Core await LineZero{DateTime.Now}), TimeSpan.FromMinutes(2));return context.Response.WriteAsync(ok);}); }); #endregion app.Run();3、CustomJobController.cs using Hangfire.Server; using Hangfire; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc;namespace Web.Controllers {[Route(api/[controller])][ApiController]public class CustomJobController : ControllerBase{private readonly ILogger _logger;private readonly IBackgroundJobClient _backgroundJobClient;public CustomJobController(ILoggerCustomJobController logger, IBackgroundJobClient backgroundJobClient){_logger logger;_backgroundJobClient backgroundJobClient;}[HttpGet]public IActionResult Get(){var jobId _backgroundJobClient.Enqueue(() FireAndForgetJob(null));Thread.Sleep(5000);return Ok($Job Id: {jobId} completed...);}[HttpGet]public IActionResult Get1(){var jobId BackgroundJob.Schedule(() Console.WriteLine(This is an example of a delayed job), TimeSpan.FromDays(1));return Ok($Job Id: {jobId} completed...);}[HttpGet]public IActionResult Get2(){var jobId _backgroundJobClient.Enqueue(() FireAndForgetJob(null));Thread.Sleep(5000);return Ok($Job Id: {jobId} completed...);}public Task FireAndForgetJob(PerformContext context){var jobId context.BackgroundJob.Id;_logger.LogInformation($Executing Job Id: {jobId}...);return Task.CompletedTask;}} }4、Cron 表达式 是一个时间表达式包含6或7个字段组成每个字段代表不同的时间单位前6个字段是必须的最后一个【年】是可选的从左到右依次为 7个字段秒 分 时 日 月 星期 年 6个字段秒 分 时 日 月 星期 (年可为空) 其中年可为空不是必须;      在大部分使用cron的场景下 - * / ? 这几个常用字符就可以满足我们的需求了。 【*】每的意思。在不同的字段上就代表每秒每分每小时等。 【-】指定值的范围。比如[1-10]在秒字段里就是每分钟的第1到10秒在分就是每小时的第1到10分钟以此类推。 【,】指定某几个值。比如[2,4,5]在秒字段里就是每分钟的第2第4第5秒以此类推。 【/】指定值的起始和增加幅度。比如[3/5]在秒字段就是每分钟的第3秒开始每隔5秒生效一次也就是第3秒、8秒、13秒以此类推。 【?】仅用于【日】和【周】字段。因为在指定某日和周几的时候这两个值实际上是冲突的所以需要用【?】标识不生效的字段。比如【0 1 * * * ?】就代表每年每月每日每小时的1分0秒触发任务。这里的周就没有效果了。 * 分钟字段表示程序应该在哪些分钟运行 星号*表示每隔1分钟触发 逗号,用于指定多个分钟例如【0,15,30,45】表示每小时的0、15、30和45分钟 中划线-用于指定一个时间段例如【10-20】表示从10分钟到20分钟 斜杠/用于指定一个时间间隔例如【*/5】表示每5分钟 * 示例 0 0/5 * * * *每5分钟运行程序 0 10,20 * * * *在每个小时的10和20分钟运行程序 0 10-20/5 * * * *在每个小时的10到20分钟之间每5分钟运行程序 * 小时字段表示程序应该在哪些小时运行 - 星号*表示所有小时 - 逗号,用于指定多个小时例如——0,12,18——表示每天的0、12、18点 - 中划线-用于指定一个时间段例如——9-17——表示从9点到17点 - 斜杠/用于指定一个时间间隔例如——*/2——表示每2小时 * 示例 0 0 */2 * * *每2小时运行程序 0 9-17 * * * *在每天的9点到17点之间运行程序 0 0-12/3 * * * *在每天的0点到12点之间每3小时运行程序 * 经典案例 5 * * * * ?   每分钟的第5秒执行一次 30 * * * * ? 每分钟的第30秒触发任务 30 10 * * * ? 每小时的10分30秒触发任务 30 10 1 * * ? 每天1点10分30秒触发任务 30 10 1 20 * ? 每月20号1点10分30秒触发任务 30 10 1 20 10 ? * 每年10月20号1点10分30秒触发任务 30 10 1 20 10 ? 2011 2011年10月20号1点10分30秒触发任务 30 10 1 ? 10 * 2011 2011年10月每天1点10分30秒触发任务 30 10 1 ? 10 SUN 2011 2011年10月每周日1点10分30秒触发任务 15,30,45 * * * * ? 每15秒30秒45秒时触发任务 15-45 * * * * ? 15到45秒内每秒都触发任务 15/5 * * * * ? 每分钟的每15秒开始触发每隔5秒触发一次 15-30/5 * * * * ? 每分钟的15秒到30秒之间开始触发每隔5秒触发一次 0 0/3 * * * ? 每小时的第0分0秒开始每三分钟触发一次 0 15 10 ? * MON-FRI 星期一到星期五的10点15分0秒触发任务 0 15 10 L * ? 每个月最后一天的10点15分0秒触发任务 0 15 10 LW * ? 每个月最后一个工作日的10点15分0秒触发任务 0 15 10 ? * 5L 每个月最后一个星期四的10点15分0秒触发任务 0 15 10 ? * 5#3 每个月第三周的星期四的10点15分0秒触发任务常用cron表达式例子  10/2 * * * * ?   表示每2秒 执行任务 10 0/2 * * * ?    表示每2分钟 执行任务 10 0 2 1 * ?   表示在每月的1日的凌晨2点调整任务 20 15 10 ? * MON-FRI   表示周一到周五每天上午10:15执行作业 30 15 10 ? 6L 2002-2006   表示2002-2006年的每个月的最后一个星期五上午10:15执行作 40 0 10,14,16 * * ?   每天上午10点下午2点4点  50 0/30 9-17 * * ?   朝九晚五工作时间内每半小时  60 0 12 ? * WED    表示每个星期三中午12点  70 0 12 * * ?   每天中午12点触发  80 15 10 ? * *    每天上午10:15触发  90 15 10 * * ?     每天上午10:15触发  100 15 10 * * ?    每天上午10:15触发  110 15 10 * * ? 2005    2005年的每天上午10:15触发  120 * 14 * * ?     在每天下午2点到下午2:59期间的每1分钟触发  130 0/5 14 * * ?    在每天下午2点到下午2:55期间的每5分钟触发  140 0/5 14,18 * * ?     在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发  150 0-5 14 * * ?    在每天下午2点到下午2:05期间的每1分钟触发  160 10,44 14 ? 3 WED    每年三月的星期三的下午2:10和2:44触发  170 15 10 ? * MON-FRI    周一至周五的上午10:15触发  180 15 10 15 * ?    每月15日上午10:15触发  190 15 10 L * ?    每月最后一日的上午10:15触发  200 15 10 ? * 6L    每月的最后一个星期五上午10:15触发  210 15 10 ? * 6L 2002-2005   2002年至2005年的每月的最后一个星期五上午10:15触发  220 15 10 ? * 6#3   每月的第三个星期五上午10:15触发 * * *
http://www.hkea.cn/news/14272025/

相关文章:

  • 做it的网站有哪些wordpress优酷插件
  • 忻州网站建设公司建设银行网站上预览电子回单
  • 建设应用型网站的意义网络维护电话
  • 做区位图的网站大理公司网站建设
  • 做网店好还是网站网站优化建设山东
  • 美团网站除佣金表格怎么做网上电影网站怎么做的
  • 钟楼区建设局网站做本地婚恋网站
  • 常州网站建设价格网站优化实习报告
  • 京东网站建设的要求电子商务营销写作实务
  • 百度快照和做网站有关系吗东莞推广系统
  • 郑州做旅游网站的公司有免费的wordpress
  • 宣城地宝网站开发安庆信德建设咨询有限公司网站
  • 白杨seo课程苏州网站排名优化
  • 手表网站排名前十织梦网站安装视频
  • 简单网站的制作开发app应用公司排名
  • 如何把网站做的和别人一样wordpress 占比
  • 江苏五星建设集团有限公司网站企业外部网站建设
  • 网站设计制作的价格低廉人人设计网官方网站
  • 网站自助建设源码沃尔玛网上超市
  • 横山专业做网站建设的公司常德 网站建设
  • 涿州住房和城乡建设局网站wordpress首页友情链接
  • 投资集团网站建设方案邮箱网址注册免费
  • 用ps怎么做短视频网站网站备案 名称 不一致吗
  • 网站的建设背景表情包制作网站
  • 网站开发团队投入wordpress添加404页面模板
  • 最火的二十个电商app百度seo站长工具
  • 天津网站建设优选企业黑帽seo是作弊手法
  • 新品发布会宣传文案重庆网站seo好不好
  • win7 iis 发布asp.net网站郑州发布
  • 可以帮忙做网站做公司长春头条新闻今天