杰斯克是我想使用的一个很好的工具。
Jesque是Resque在Java中的一个实现。它与RubyandNode.js(Coffee)实现完全可互操作。 Jesque是一个Maven项目,依赖于Jedis连接到Redis,Jackson通过映射到/从JSON和SLF4J进行日志记录。
但在此之前,我需要更多的信息。在杰斯克也可以检索所有开放的工作吗?这一信息可能对我的名字和脏的重新启动有用。在脏关机之后,如果任何其他应用程序已经完成了相同的任务或处于队列中,则检查其他分布式应用程序中的所有剩余作业可能是有用的。这个是可能的吗?我想避免,这项工作已经完成了两次或更多次,因为负载平衡器后面可能有几个应用程序,如果原始客户端没有得到OK或失败反馈,他会再次尝试,因此有可能在几个应用程序中有几个相同的工作( loadbalancer!)。
我使用Java,所以也可以使用另一个REDIS DB客户端工具亲自查看redis db。这将是我的第二个选择,如果没有机会这样做的杰斯克。有人知道一个好的redis db客户端的Java吗?
发布于 2015-07-03 07:42:31
我终于找到了它的工作方式,我想在这里把它记录下来。有一个由QueueInfoDAORedisImpl实现的接口‘QueueInfoDAORedisImpl’。
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保持为空。
https://stackoverflow.com/questions/27835428
复制相似问题