談談Quartz中遇到的深坑

2022-09-11 20:12:15 字數 889 閱讀 6264

最近在專案開發的時候,根據業務需求,需要配置為自定義quartz任務(即:使用者可以自定義任務執行時間)

但是在即將寫完的時候遇到乙個非常頭疼的問題

乙個redistemplate 與 workorderservice  無法注入,一直為空。

原因

你實現的乙個job(例如上面的**的autoschedulejob),並不是由你自己new出來的,留意一下jobbuilder.newjob的**,傳入的引數是autoschedulejob.class,而不是乙個具體的job例項。quartz幫你吧job new乙份出來,並且呼叫相應的介面,並沒有別的功能。

這樣spring認為job類不需要管理。

也就是說你不能對job類進行任何形式的注入(ioc),比如說,我們的example.examplejob是乙個dao,需要傳入datasource進行db操作,沒轍!

解決辦法:

quratz在job介面中(即我們自定義的autoschedulejob)jobexecutioncontext介面引數

這樣我們需要什麼可以這樣寫

利用scheduler容器運載你需要傳遞的物件。

就可以獲取到物件了,然後再賦值給全域性變數,就可以使用了!

分布式環境計算時遇到的深坑

以前都沒有關注過hashcode的正負,最近做了分割槽,才遇到了負值引發的深坑。實踐中hashcode 可能算出來的是integer.min value,而這個數是integer型別的最小的負數,當hash值恰好是負數時,就會導致bug 從網上一些資料了解到,在分布式環境中,除了分割槽外,在佇列選擇...

java 談談工作中遇到的問題

時間過得很快,轉眼之間,工作已經一年多了,這一年了看到了好多,也想了好多。想想自己經歷的公司,發現公司真的很有意思。不知道為什麼,感覺公司裡的 怎麼好多都讓人想發火呢,不禁讓我感覺到,中國好多it公司真的不是靠技術吃飯的。我是做web開發的,軟體開發中有經典的mvc思想,剛開始接觸時,感覺真的很美。...

萬年深坑 mpVue 中的坑

1.偶發檢視不更新 使用 js 狀態 patch 賦值到陣列 2.開發者工具有時候不報錯,不執行 可能是某個語法錯誤導致中斷 3.v else 中如果內容複雜,build 後可能渲染出空白元素 可以將 v if v else 對調 4.元件巢狀過深,可能導致 vm 資料殘留,具體要分析mpvue 中...