2

Akka Scheduler 很棒,但缺乏持久性。

对于具有持久性的作业调度,有什么好的解决方案吗?最好是 Redis。

4

6 回答 6

2

我知道并且我们目前正在使用的最好的调度程序之一是Quartz。用 Java 编写,但我们在 Scala 项目中与 Akka 一起使用

于 2013-07-04T18:01:42.987 回答
0

这是我最近编写的一个小型 Java 库,用于使用 Redis 作为后端处理分布式任务调度:https ://github.com/davidmarquis/redis-scheduler

它非常简单,但应该可以让您很快上手。它本身不会保留您的工作数据,但会在正确的时间触发您的工作。此外,如果您的应用程序有多个实例,作业将在单个实例上执行。

于 2013-12-22T15:36:27.623 回答
0

我们已经成功使用Quartz和 Java 有一段时间了,最​​近添加了一个redis 后端

免责声明:我参与了 redis-quartz 的设计。截至目前,redis-quartz仍处于测试阶段。

于 2014-02-11T10:12:40.743 回答
0

Java Quartz 是调度的好选择,并且具有可用于持久性的 Jobstore API。这是一个很好的阅读http://www.ibm.com/developerworks/java/library/j-quartz/

于 2013-08-21T07:18:20.113 回答
0

I would recommend you to try Redisson. It allows to usual java.lang.Runnable and java.util.concurrent.Callable interfaces. Here is code example:

RScheduledExecutorService executorService = redisson.getExecutorService("myExecutor");
ScheduledFuture<?> future = executorService.schedule(new CallableTask(), 10, 20, TimeUnit.MINUTES);

future.get();
// or cancel it
future.cancel(true);

Examples with cron expressions:

executorService.schedule(new RunnableTask(), CronSchedule.of("10 0/5 * * * ?"));

executorService.schedule(new RunnableTask(), CronSchedule.dailyAtHourAndMinute(10, 5));

executorService.schedule(new RunnableTask(), CronSchedule.weeklyOnDayAndHourAndMinute(12, 4, Calendar.MONDAY, Calendar.FRIDAY));
于 2016-11-28T11:30:32.763 回答
0

我知道您的问题是关于 Redis,但我刚刚遇到Akka-Scheduling for Akka,我认为它会很有用。

您可以坚持使用 Akka 的调度程序。

于 2015-09-14T08:27:38.543 回答