xuxueli / xxl-job

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

动态添加任务? #277

Closed lengrongfu closed 6 years ago

lengrongfu commented 6 years ago

Please answer some questions before submitting your issue. Thanks! 我想要一个可以动态添加定时任务的功能。比如,在商城系统中,一个人下单之后,就要触发一个定时任务,30分钟之后去检查这个订单是否支付,如果没有支付就取消订单这种动作,就是每个任务的定时都不固定,这里面有这个功能吗?

Which version of XXL-JOB do you using?

1.9.0

Expected behavior

动态添加任务

Actual behavior

Steps to reproduce the behavior

Other information

18099538715 commented 6 years ago

如果不是对时间精确到秒的话,可以10秒执行一次订单查询,将创建时间超过30分没有支付的订单取消

Ryan-Miao commented 6 years ago

我也觉得这种定时查询比单独定时任务好。+1

xuxueli commented 6 years ago

你好,感谢关注和反馈! 我也同意 @18099538715 @Ryan-Miao 的方案,单用JOB周期性轮训更合适。

如果一定想要动态创建任务也是支持的,可以参考调度中心API服务 “AdminBiz” 将JobService暴露为RPC服务,从而在业务代码中动态创建和操作。

上面提供的是JOB的解决方案,不过,也存在MQ的解决方案,可以了解下 XXL-MQ ,它支持消息延迟消费,可通过其提供的延迟消息功能来实现对应功能。

talywy commented 6 years ago

@xuxueli 你好,我参考AdminBiz的方式将XxlJobService暴露为了RPC服务,但是XxlJobService接口的定义目前是在xxl-job-admin工程中而非xxl-job-core工程, 这样不便于业务上包的引用集成。 建议是否有可能把该接口定义迁移到xxl-job-core中。如果可以的话,我可以抽些时间来进行相关代码编写,补充对应的单元测试等。PS:类似的建议如, #334

xuxueli commented 6 years ago

你好,感谢反馈! 这个功能已经在迭代中,将会在下个版本发布!

shyding commented 6 years ago

@xuxueli 我想请问一下 ,能够加入执行器的批量自发现功能? 每次要手动添加,感觉这样任务也很重呀

JarryHe commented 6 years ago

@xuxueli 我查了一下 api 和 TriggerParam 中的参数,按照这个问题描述 如果使用api的方式,也是在订单30分钟后代码触发任务。 而不是在下单时就把任务创建好?

xuxueli commented 6 years ago

@JarryHe 你好,可以新建一个 30min后执行的任务。可参考任务界面操作的ajax请求。任何ajax接口均可配置成为API服务,只需在待启用的API服务上添加 “@PermessionLimit(limit = false)” 注解取消登陆态拦截即可;

你的这种需求推荐实用延迟队列实现,推荐 XXL-MQ,非常适合你订单超时取消的业务场景。

xuxueli commented 6 years ago

@shyding 你好,目前以及支持了执行器自动注册功能,不过需要事先添加执行器用于过滤无效的注册信息。

staycolorful commented 4 years ago

@xuxueli 你好,我参考AdminBiz的方式将XxlJobService暴露为了RPC服务,但是XxlJobService接口的定义目前是在xxl-job-admin工程中而非xxl-job-core工程, 这样不便于业务上包的引用集成。 建议是否有可能把该接口定义迁移到xxl-job-core中。如果可以的话,我可以抽些时间来进行相关代码编写,补充对应的单元测试等。PS:类似的建议如, #334

你好,是否遇到过XxlJobInfo must implement java.io.Serializable这个问题呢??

Maijh97 commented 3 years ago

你好,感谢反馈! 这个功能已经在迭代中,将会在下个版本发布!

请问一下,这个功能的迭代发布了吗?现在最新的2.3.0版本还是不能在xxl-job-core使用XxlJobService哦