Dış sistemden veri almak için WSO2 ESB zamanlama görevini kullandım, görev her 5 saniyede bir proxy hizmetimi çağırır. Vekil sunucumda "startTime" ve "endTime" özelliklerinden birini kullandım, "startTime" dan "endTime" a kadar veri almak istiyorum. "startTime" ve "endTime" her görev çağrısında 5 saniye artar. Ancak, ESB bu özellikleri her görev çağrısı arasında saklayamaz (startTime ve endTime). Ben "startTime" yazmak için komut dosyası kullanmayı deneyin:Her görev çağrısı arasında özellik değeri nasıl yedeklenir
importPackage(Packages.org.apache.synapse.config);
var id = mc.getProperty("id");
var res = "conf/data_task/"+id ;
var startTimeInReg = mc.getProperty("_endTime");
mc.getConfiguration().getRegistry().updateResource(res+"/startTime", startTimeInReg.toString());
ve almak o
<property expression="get-property('registry', fn:concat('conf/data_task/',get-property('id'),'/startTime'))"
name="startTimeInReg" scope="default" type="STRING"/>
elimden "startTime" olsun, ama aynı değeri kalır ve bunu buldum sonra 2 veya 3 kez zamanlama görevi çağrısı (belki 15 saniyeden fazla), startTime değerinin değeri.
Belki de ESB'nin önbelleğe alınmasının neden olabileceğini düşünüyorum, updateResource yöntemi çağrıldıktan hemen sonra startTime değerinin değiştirilmesini nasıl yapabilirim. Ya da bu sorunu nasıl çözebiliriz.
İkinci çözümle çalışabilir. Ancak ilk çözüm, ESB önbellek mekanizması nedeniyle değişiklik özelliğini birkaç saniye sonra elde edemiyor. – yeahliu
Önbelleğe bazı veriler koymak için 1. çözümü kullanıyorum. Bu yüzden, değişikliklerin anında yerine geçmediğini fark ettin. –