0

Jesque是我想使用的好工具。

Jesque 是 Resque 在 Java 中的一个实现。它与 Ruby 和 Node.js (Coffee-Resque) 实现完全互操作。

Jesque 是一个 Maven 项目,依赖 Jedis 连接到 Redis,Jackson 映射到 JSON 和 SLF4J 进行日志记录。

但在此之前,我需要更多信息。是否也可以检索 Jesque 中的所有空缺职位?此信息可能对我的监控和脏重启有用。脏关机后,检查其他分布式应用程序的所有剩余作业可能很有用,如果任何其他应用程序已经完成相同的作业或也在队列中。这可能吗?我想避免这项工作被完成两次或更多,因为负载均衡器后面可能有多个应用程序,如果原始客户端没有收到 OK 或 FAIL 反馈,他会再试一次,所以有可能有几个相同的工作几个单一的应用程序(负载均衡器!!!)。

我使用 Java,所以也许也可以使用另一个 redis db 客户端工具自己查看 REDIS DB。如果没有机会和 jesque 一起做这件事,这将是我的第二个选择。有谁知道一个好的 Java 的 redis db 客户端?

4

1 回答 1

0

我终于找到了它(应该)工作的方式,我想在这里记录它。QueueInfoDAORedisImpl 实现了接口“QueueInfoDAO”。

this.jedisPool = new JedisPool(jesqueConfig.getHost());
this.queueInfoDAORedisImpl = new net.greghaines.jesque.meta.dao.impl.QueueInfoDAORedisImpl(jesqueConfig, jedisPool);
List<QueueInfo> queueInfos = queueInfoDAORedisImpl.getQueueInfos();

        for (QueueInfo queueInfo  : queueInfos) {
            //here are some QueueInfos like name or size
            for (Job queuedJob : queueInfo.getJobs()) {
                //read jobs arg,vars or do what you want
            }
        }

唯一的问题是 queueInfo.getJobs() 返回 null。有人知道为什么吗?似乎 DAO setJob() 从未被调用,所以这个 var 保持为空。

于 2015-07-03T07:42:31.050 回答