Klasa SimpleThreadPool dostarczana razem z Quartz Scheduler nie ma zachowania FIFO. Chcę się upewnić, że jeśli dodam nowe zadania do programu planującego, zostaną one zaadresowane na zasadzie First-in-First-out. Czy jest dostępny jakiś ThreadPool? Czy jest jakiś inny sposób, aby to osiągnąć?Planer kwarcowy theadpool
5
A
Odpowiedz
5
Można to osiągnąć poprzez delegowanie do ThreadPoolExecutor z kolejki FIFO, co następuje:
public class DelegatingThreadPool implements ThreadPool {
private int size = 5; //Fix this up if you like
private final ThreadPoolExecutor executor = new ThreadPoolExecutor(size, size,
0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
public boolean runInThread(Runnable runnable) {
synchronized (executor) {
if (executor.getActiveCount() == size) {
return false;
}
executor.submit(runnable);
return true;
}
}
public int blockForAvailableThreads() {
synchronized (executor) {
return executor.getActiveCount();
}
}
public void initialize() throws SchedulerConfigException {
//noop
}
public void shutdown(boolean waitForJobsToComplete) {
//No impl provided for wait, write one if you like
executor.shutdownNow();
}
public int getPoolSize() {
return size;
}
public void setInstanceId(String schedInstId) {
//Do what you like here
}
public void setInstanceName(String schedName) {
//Do what you like here
}
Jest możliwe, że aktywny liczba wykonywalnych nie będzie dokładnie odpowiadać dokładną liczbę zadań, które realizują. Musisz dodać zatrzask i użyć funkcji beforeExecute, aby zapewnić, że zadanie zostało uruchomione, jeśli jest to konieczne.
Powiązane problemy
- 1. Mechanizm kwarcowy .NET MakeDailyTrigger
- 2. Terminarz kwarcowy: uruchamiany ostatniego dnia miesiąca
- 3. Mechanizm kwarcowy i sprężynowy - klastrowany, ale nietrwały?
- 4. kwarcowy przykładowy program scheduler daje błąd
- 5. Kwarcowy cron - co jeśli dzień miesiąca nie istnieje?
- 6. Program java kwarcowy terminarz natychmiast uruchamia nową pracę
- 7. Kakao Grafika 2D: Kwarcowy, Core Image lub Core Animation?
- 8. Wyrażenie Cron kwarcowy: Uruchom zadanie Co 10 minut począwszy TERAZ (natychmiastowo)
- 9. Jak mogę uruchomić harmonogram kwarcowy w poniedziałki i wtorki co dwa tygodnie?
- 10. Kwarcowy 2D lub OpenGL ES? Plusy i minusy w perspektywie długoterminowej, możliwość migracji na inne platformy
- 11. Nazwa menedżera okien dla systemu Windows
- 12. Czy Xcode 4.3 zawiera Quartz Composer?
- 13. Aplikacja mobilna a aplikacja internetowa - Apple nie akceptuje już aplikacji internetowych?
- 14. Zmiana cornerRadius używając Core Animation
- 15. Zmiana tekstu i kolor tła z ram PDFKit Apple
- 16. Jak ustawić liczbę wątków w wątku Quartz.NET?
- 17. Grails klastrowanie kwarcowych zadań kod przykładowy i konfiguracja pożądana
- 18. Singleton Per Call Context (Web Request) w Unity
- 19. Który algorytm używany do generowania tabeli czasu dla szkół
- 20. mylić o: (2.5) Aplikacje korzystające z niepublicznych interfejsów API zostaną odrzucone.
- 21. Optymalizacja zapytania Vertica SQL do czynienia z systemem wynosi
- 22. Jak skonfigurować układ współrzędnych Quartz2D użytkownika ze skalowaniem unikającym rysowania rozmytego?
- 23. Quartz Scheduler nie zatrzymuje się po wyłączeniu
- 24. Zaplanowane procesy uruchomione dwa razy jednocześnie w Openbravo (przy użyciu kwarcu)
- 25. EJB-3.1 @ Uruchomienie i @ Anilinguowanie w Apache Tomee do wykonania timera
- 26. Nie można zrozumieć transformacji układu współrzędnych grafiki iOS, potrzebuję pomocy
- 27. Wtyczka kwarcowa Grails nie działa po wdrożeniu w Tomcat
To jest świetny przykład, spróbuję tego. – Shamik