Jesque是我想用的好工具。
Jesque是Java中RESQuE的实现。它可以与ruby和node.js(coffee resque)实现完全互操作。
Jesque是一个Maven项目,依靠绝地来连接Redis,
jackson映射到json和slf4j进行日志记录。
但之前,我需要更多的信息。也可以用jeske检索所有打开的作业吗?这些信息可能对我的监视和脏的重启很有用。在脏关机之后,如果任何其他应用程序已经完成了相同的作业或也在队列中,则可以使用其他分布式应用程序检查所有剩余的作业。这可能吗?我想避免,这项工作被做了两次或更多,因为在loadbalancer后面可能有几个应用程序,如果原始客户机没有ok或fail反馈,他会再次尝试,所以有可能,在几个应用程序(loadbalancer)中有几个相同的工作!!!!).
我使用Java,所以也有可能用另一个ReDISDB客户端工具自己查看ReDISDB。这将是我的第二个选择,如果没有机会这样做与杰斯克。有人知道一个好的JavaDB客户端吗?
最佳答案
我终于找到了它的工作方式,我想把它记录在这里。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(),因此此变量保持为空。