日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Quartz(任务调度)- job串行避免死锁

發布時間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Quartz(任务调度)- job串行避免死锁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參照:http://blog.csdn.net/haitaofeiyang/article/details/50737644

quartz框架中防止任務并行可以有兩種方案:

1、如果是通過MethodInvokingJobDetailFactoryBean在運行中動態生成的Job,配置的xml文件有個concurrent屬性,這個屬性的功能是配置此job是否可以并行運行,如果為false則表示不可以并行運行,否則可以并行。如果一個job的業務處理發費的時間超過了job的啟動的間隔時間(repeatInterval),這個屬性非常有用。如果為false,那么,在這種情況下,當前job還在運行,那么下一個job只能延時運行。如果為true,那么job就會并行運行。 <bean id=" jobCompareB2cAndLocal" class="com.vipshop.management.util.quartz.MethodInvokingJobDetailFactoryBean "><property name="targetObject " ref="delegateJob " /><property name="targetMethod " value="方法名" /><property name="concurrent " value="false "></property > </bean > 2、如果是通過自定義要執行的任務的類的名稱實現job的話,則有另一種方式: 默認的任務的類實現org.quartz.Job接口,此時任務是stateless(無狀態的),即會出現并行的情況,那么如何避免這種情況發生呢? 解決方案:使QuartzJobBean類實現org.quartz.StatefulJob接口即可(StatefulJob接口僅僅是擴展了 Job 接口,未加入新的方法,可以不需實現Job接口了),那么此時任務就會變成stateful(有狀態的),此時的任務也就會串行執行了。 public class BackCoupon implements StatefulJob {@Overridepublic void execute(JobExecutionContext context)throws JobExecutionException {}}

?

在Quartz中:

如果實現org.quartz.Job接口,那么這個job是stateless的,job實例的參數不能在多個任務之間共享

如果實現org.quartz.StatefulJob,這個job是個單例的,job實例的屬性可以從當前任務傳遞到下一個任務。

?

轉載于:https://www.cnblogs.com/peak-c/p/5418096.html

總結

以上是生活随笔為你收集整理的Quartz(任务调度)- job串行避免死锁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。