![](/img/trans.png)
[英]What's the equivalent of ruby's rack or python's wsgi for Java?
[英]What's the equivalent of Python's Celery project for Java?
我正在嘗試為 Java 環境找到一個與 Celery 項目等效的項目,我已經查看了 Spring Batch,但是對於分布式任務隊列有沒有更好的選擇。
謝謝。
Jesque ( https://github.com/gresrun/jesque ) 是一個 Java 分布式任務隊列庫。 它是 Resque 庫 ( https://github.com/defunkt/resque ) 的 Java 端口,在其 GitHub 頁面上是這樣描述的:
Resque(讀作“rescue”)是一個由 Redis 支持的庫,用於創建后台作業、將這些作業放置在多個隊列中並稍后處理它們。”
Quartz 過去曾為我工作過。 它現在與 Terracotta 集成,所以應該很容易分發。 http://quartz-scheduler.org/
分布式 Java 任務調度和執行https://redisson.org/
我發現的最接近的東西是 Octobot: https ://github.com/cscotta/Octobot 雖然沒有那么多文檔......曾經在 octobot.taco.cat 有一個網站,但我還沒有看到最近的負載。 我沒有親自使用過 Octobot,但我經常看到它被推薦為 Java 的 Celery。
我還沒有找到像 Celery for Java 這樣容易使用的東西。 大多數解決方案建議使用消息隊列。 但是 Celery 的抽象層次比隊列高一級。 您可以考慮任務和工作人員、結果、重試等,而不是消息和消費者。
我還需要為一家同時使用 Java 和 Python 的公司實現一些橋梁,所以我開始了這個項目:
celery-java -Java中的 Celery 客戶端和工作者,與 Python 對應物兼容。
請注意,它現在還很不成熟。
我發現 Java 世界中的JobRunr與 Python 世界中的 Celery 非常相似。 它是一個用於 Java 后台處理的庫,本質上是分布式的,並由持久存儲支持。
從他們的文檔中,
僅使用 Java 8 lambda 在 Java 應用程序中執行即發即棄、延遲、計划和重復作業的極其簡單的方法。 支持 CPU 和 I/O 密集型、長時間運行和短期運行的作業。 持久存儲通過 RDBMS(例如 Postgres、MariaDB/MySQL、Oracle、SQL Server、DB2 和 SQLite)或 NoSQL(ElasticSearch、MongoDB 和 Redis)完成。
Apache ActiveMQ http://activemq.apache.org/
阿帕奇卡夫卡http://kafka.apache.org/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.