xuxueli / xxl-job

A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
http://www.xuxueli.com/xxl-job/
GNU General Public License v3.0
27.45k stars 10.86k forks source link

怎么处理一个新的临时job任务? #187

Closed Lingzhou314 closed 6 years ago

Lingzhou314 commented 6 years ago

你好作者大神,非常感谢~~~,我有个小小的疑问哈

我用的版本是:1.8.2

我有一些需求是系统会有一些临时的任务需要处理,比如2个钟头后有个会议提醒,比如明天下午2点需要通知我去机场接客户,比如5分钟后商城里要发布一个促销商品供用户秒杀等等。

我看了下api的接口,只提供了回调,执行器的注册删除,和触发任务功能接口,但并没有提供新增、编辑任务的功能接口,请问是否有一些其他的方式可以实现呢?或者说设计的时候并不是为了解决这种临时任务的,只能处理预先定义好的任务

xuxueli commented 6 years ago

你好,感谢关注! 通过API方式对任务进行CRUD是支持的,但是需要做一些定制,把任务Service注册API服务工厂里(可以参考这行代码,注册任务Service:https://github.com/xuxueli/xxl-job/blob/master/xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java#L76 )。

两一方面,提到的临时性任务,这类临时性任务的任务逻辑代码,也是需要预先编码发布上线的哈。我理解这类临时性任务,指的是触发基于临时事件的,而且触发之后,通常延迟执行。这种情况,推荐考虑下XX-MQ啊,支持延迟指定时间点执行,失败重试,消息轨迹可见等等。

Lingzhou314 commented 6 years ago

好的,非常感谢,不想用mq之类的是因为想统一使用一个任务平台去管理记录。

xubing6243 commented 6 years ago

@78425665 这个问题最后是怎么解决的呢?

lawplus commented 6 years ago

实现simpletriger即可。这部分功能开始了么?

xuxueli commented 6 years ago

@78425665 @xubing6243 你好,即将发布的 v1.9.2 提供了任务操作以及任务触发的API,欢迎体验试用。 @rongmin 你好,SimpleTrigger 已经加入TODO列表,将会排期跟进。

Lingzhou314 commented 5 years ago

@xuxueli 非常感谢作者大神,,,已经更新到版本1.9.2了,但是有个问题,我在更新代码后,发现数据库表字段有比较多的改动,但是改动的sql只体现在初始化的建表sql上,没有update的sql日志记录,建议以后的版本更新,原建表sql不改动,而是在tables_xxl_job.sql文件末尾处追加上版本号注释,使用alter table add column 这种更新语句更新数据库,因为大部分情况都是已经上线运行的系统了,升级版本肯定都是使用alter table这种方式