背景:專案中用到的分布式技術是 springcloud nacos openfeign,專案有用到定時器的功能,如果controller,如果去掉@autoware注解就不報錯


以下是報錯內容
uj5u.com熱心網友回復:
報錯原因是因為已經有一個DEFAULT.2的id在作業了,要么是你重復啟動,或者你又快取沒有洗掉,導致之前的任務還在,沒辦法再次啟動uj5u.com熱心網友回復:
沒看懂你的用法,你使用了Feign為什么是遠程呼叫這個service呢,為什么不是呼叫controller,在controller里呼叫這個service
這就呼叫的是它的controller,controller中去調service。你這樣好像是因為Feign已經進行呼叫這個service了,所以會報已存在,不能再進行注入。
uj5u.com熱心網友回復:
沒有遠程呼叫service,可能前兩個截圖放在一塊讓你看錯了,service是在controller中注入的,遠程呼叫時在service中實作的uj5u.com熱心網友回復:
還有一個情況,如果換成ribbon方式呼叫就沒有報錯,難道會是feign中有定時器的操作呼叫了定時器的框架連帶我的定時器一并啟動了嗎?uj5u.com熱心網友回復:
你把遠程呼叫的介面名稱改一下試試,不要和service命名一樣。感覺上不太好uj5u.com熱心網友回復:
ribbon是做負載均衡的,定時器肯定是沒有的,因為我做了一個專案都是自己重新弄的定時器uj5u.com熱心網友回復:
這個還跟service命名真沒關系,每次啟動的時候會報一次錯,還有第一次訪問的時候也會報一次,其他功能不影響,也有可能是nacos定時發送心跳沖突了吧,我猜的uj5u.com熱心網友回復:
這問題完全不知道解決思路
uj5u.com熱心網友回復:
你注釋的那個service代碼是不是里面有呼叫quartz的代碼了啊,看起來是本來就有了,你注入之后然后代碼又去呼叫創建job了,你去檢查一下代碼,斷點,看看是不是重復呼叫了,或者做個判斷是否已存在,如果已存在,要不洗掉,要不跳過啊uj5u.com熱心網友回復:
我的代碼里沒有定時器的內容,這個報錯在啟動的時候就報了,而且第一次呼叫本工程的方法時也會報一次,總之很奇怪轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/16037.html
標籤:Java EE
