我有一個監聽主題的類(TopicListenerImp),我想從remoteListen函數獲取消息,并將其作為參數提供給其他服務類中的另一個非靜態函數。 @Component public class TopicListenerImp implements TopicListener { private NotificationService notificationService; private SubscriptionRepository subscriptionRepository; private SubscriptionRules subscriptionRules; private NFInstancesService nfInstancesService; private Ignite ignite; public TopicListenerImp( SubscriptionRules subscriptionRules, NotificationService notificationService, SubscriptionRepository subscriptionRepository, Ignite ignite, NFInstancesService nfInstancesService) { this.subscriptionRules = subscriptionRules; this.notificationService = notificationService; this.subscriptionRepository = subscriptionRepository; this.nfInstancesService = nfInstancesService; this.ignite = ignite; } @Bean public void startTopicListening() { IgniteMessaging rmtMsg = ignite.message(ignite.cluster().forLocal()); rmtMsg.remoteListen( "SUSPEND", (nodeId, msg) -> { notifyIfSubscriptionExist((String) msg); //here where I used the message that comes from topic return true; }); } public void notifyIfSubscriptionExist(String msg) { List<String> nfInstanceIdSubscriptionId = parseNfInstanceIdSubscriptionId(msg); Optional<NFProfile> nfProfile = nfInstancesService.getNFInstance(nfInstanceIdSubscriptionId.get(0)); Optional<SubscriptionData> subscriptionDataOptional = subscriptionRepository.getSubscriptionData(nfInstanceIdSubscriptionId.get(1)); }); }但我收到以下錯誤; Caused by: org.apache.ignite.binary.BinaryObjectException: Failed to serialize object etc.當我靜態注入字段時,它起作用了。但是當我這樣做時,IDE 會發出警告“不要從構造函數方法更新靜態變量”。
如何在 ignite-messaging lambda 函數的 Remotelisten
慕田峪4524236
2023-10-13 10:05:50