标签: scheduling

jruby on rails调度选项

我在Rails上使用JRuby 1.5.6来构建一个应用程序,它会定期消失并检索我订阅过的任何RSS播客.

我选择JRuby主要是因为我熟悉Java,希望利用Rails框架,最重要的是,当Ruby达不到我的要求时,我能够用Java执行"繁重的"任务.到目前为止(我还处于开发的早期阶段),这种混合方法一直运行得非常好.

我现在正处于需要将后续和长期运行任务的调度实施到后台进程的程度.我的要求是拥有一个数据库支持的调度系统,理想情况下,该系统记录良好,当前维护和清理.

我现在的问题是,经过多天研究合适的自我宝石包装解决方案后,由于我使用JRuby,我似乎只剩下很少的选择.

我试过的一些宝石......

rufus调度程序

在使用它之前我对它的接口和文档感到满意,但是缺乏数据库持久性,因此对我的要求造成了破坏.

delayed_job的

我理想的解决方案是delayed_job.然而,由于ObjectSpace被关闭(但我们可以通过重新启用来解决这个问题),但仍然维护和数据库支持的良好文档在JRuby下中断了,但是更加致命的依赖于守护进程gem会导致"fork不安全并且禁用默认情况下,JRuby"由于JRuby实现中的限制而导致错误.

在github上有一个没有依赖守护进程的分支,但是我不满意从主开发分支切换到一个分支,我仍然留下了ObjectSpace问题,我不确定它的性能影响.

石英的JRuby

虽然之前有过各种石英宝石,但这一最新产品是另一种提供光滑的类似红宝石的界面的尝试.然而,文档很少,我不确定这是否可以支持数据库,我的直觉是它不是.

问题

虽然我在这里只突出了3个选项,但我知道还有其他选项可用.然而,我无法找到解决方案来勾选所有3个需求框(文档,维护,数据库支持).

所以问题是......

有没有其他人处于这种情况并想出一个解决方案?

有没有人设法让delayed_job以任何形式工作?

有没有更好的解决方案,我忽略了并满足了我的需求?

scheduling jruby jrubyonrails

13
推荐指数
1
解决办法
1985
查看次数

该算法是现有的实时系统算法吗?

我已经开发了一种调度算法,它提供了概率的软实时保证,但它看起来太新而且简单明了.虽然我把它与已发布的实时调度算法(EDF,零星服务器等)联系起来很困难.以下调度算法是否为已知的实时算法?

假设:

  • 所有任务都来自一个分布,其中X百分比的任务需要少于R cpu-seconds
  • 所有任务都有相同的截止日期.如果任务花费的时间超过T秒,则该任务失败
  • 任务到达由已知的最小到达间隔时间MIN_INTER_ARRIVE_T分隔
  • 调度程序有一个任务集,可以随时保存最多H个任务(在每个时间步骤中,任务集中的所有任务通过平均共享CPU来实现相同的进度)
  • 任务不能相互影响

保证:

  • (1)如果X的任务百分比要求少于R cpu-seconds和(2)R <= T/H,(3)MIN_INTER_ARRIVE_T> = T/H,那么至少X个百分比的任务将在T秒内完成

算法:

  • 如果任务到达且任务集已满,则逐出已使用最多CPU的任务.假设保证这样的任务至少使用R cpu-seconds.因此,可以驱逐的唯一任务将是失败的任务.任何需要少于R cpu-seconds的任务都将按时完成.

algorithm scheduling real-time scheduled-tasks

13
推荐指数
1
解决办法
513
查看次数

Linux - 线程和进程调度优先级

如果我们在linux上使用默认调度策略创建pthreads(pthread_create)或进程(fork),调度程序是否会在调度它们时处理具有相同优先级的进程和线程?

让我们说有一个线程的进程P1和两个线程T1 T2的进程P2

假设只有一个核心......调度将是P1 T1 P1 T2 P1 T1 P1 T2

要么

P1 T1 T2 P1 T1 T2

linux scheduling pthreads process

13
推荐指数
2
解决办法
1万
查看次数

如何做"顺序"作业调度(Quartz?)

我正在使用Quartz Scheduling,有2个工作.第一个作业执行约2分钟的任务,第二个作业是为临时文件的清洁操作设置.因此,我需要设置计划,以便在第一个作业执行/完成执行任务后,我需要在第二个作业的帮助下执行清理操作.
考虑示例9 - Quartz 2.1.x下的Job Listeners,它声明我们可以定义一个名为jobWasExecuted(_,_)的方法; 在Job Listener中,它在第一个作业执行/或进入运行状态时执行.
我们是否能够设置可以监听第一个作业然后执行第二个作业的计划?要么,
我们是否能够像在Java多线程中那样定义join()方法,它可以在完成第一个作业时执行?

java scheduling quartz-scheduler

13
推荐指数
2
解决办法
1万
查看次数

了解POSIX和Linux/glibc sched_*函数之间的差异

POSIX XSH 2.8.4进程调度定义了线程和进程的调度属性的行为.所述sched_*接口被指定为影响的调度特性过程,而不是线程.这在以下段落中阐明:

POSIX模型将"进程"视为系统资源的聚合,包括可由操作系统在其控制的处理器上调度的一个或多个线程.虽然进程具有自己的一组调度属性,但它们对各个线程的调度行为具有间接影响(如果有的话),如下所述.

对于具有系统调度争用范围的线程,进程调度属性不应对线程或专用于该线程的底层内核调度实体的调度属性或行为产生影响.

我对此的解读是,在只支持"系统调度争用范围"的系统上(Linux/glibc就是这样一个系统),这些sched_*函数应该绝对没有可观察到的效果.

这与Linux/glibc上当前行为的实际情况相反,其中sched_*设置了特定线程的调度属性.

除了想要更好地了解这种情况外,我想我有以下几个关键问题:

  1. 有没有关于这种差异的理由的文件?

  2. 我的标准阅读是否正确?特别是,对我来说这似乎真的很令人惊讶,sched_setparam并且sched_setscheduler将被指定在单线程应用程序中没有任何效果(主线程使用默认调度策略,无法更改,以及系统争用范围).

  3. 标准sched_*功能的用处是什么?在我看来,它们对大多数实现没有影响,即使对支持进程争用范围的实现也没有影响.有人可以描述它们的预期用途吗?

c linux posix scheduling

13
推荐指数
1
解决办法
754
查看次数

PHP中的定时任务(cron-like)

是否有适用于PHP的全功能作业调度包?我正在寻找与Java的Quartz相当的PHP .我很高兴从cron外部触发驱动系统的东西.我正在寻找的功能:

  • 能够注册以给定间隔调用的任务(类/方法).
  • 能够指定给定任务是否可以多次运行(在某些情况下,可能不会多次运行长期运行的方法).
  • 所有注册的条目/方法可以并行运行(作业是后台运行的,这样它们就不会阻止其他定时任务).
  • 能够为给定任务设置超时.
  • 能够动态更新作业控制,例如,您可以禁用某些任务或更改其频率而无需更改代码.

我知道这是一个很多问题,但它似乎是一组有用的功能,我认为有人可能会把它们的一部分组合在一起.

如果这个或部分内容尚未存在,那么将任何一个放在一起的指针,还是一个开源项目,其中某些子集的实现具有合理特征?

php cron automation scheduling

12
推荐指数
1
解决办法
8236
查看次数

调度员工 - 使用什么数据结构?

我正在尝试为我的软件开发公司的大约10-20人编写一个简单的员工计划软件.经过一番考虑后,我决定用Python,Ruby或PHP + Postgres/MySQL DB编写一个Web应用程序.在设计数据库模型时,我开始想知道哪种数据结构实际上最适合这种应用程序.

会是什么样子

显示月视图的应用示例与此类似:

 OCTOBER    1 2 3 4 5 6 7 8 9 ...
John Apple  M M A A N N O O O ...
Daisy Pear  O O O M M A A N N ...
Steve Cat   A A N N O O O M M ...
Maria Dog   N N O O O M M A A ...
Run Code Online (Sandbox Code Playgroud)

其中M - >为早班; A - >下午班次等(字母可以改为代码)

什么数据结构或数据库设计最适合这个?我正在考虑为每个用户存储类似于 - >"MMAANNOOOAAMMNNAAOO ..."的字符串(最多31个字符 - > 1个字符,1天); 月表将包含每个员工的此类字符串. …

database-design scheduling data-structures

12
推荐指数
1
解决办法
2万
查看次数

谁在OS中安排调度程序 - 这不是一个鸡蛋和鸡蛋的场景吗?

谁安排调度程序?

这是创建的第一个任务以及如何创建第一个任务?它不需要任何资源或内存吗?不像鸡蛋和鸡蛋的情景?

调度程序不是一项任务吗?是否在每个时间片结束时获取CPU来检查哪个任务需要给CPU?

是否有任何良好的联系使得一个人能够深入思考和理解所有这些概念,而不是泄露出一些需要被遗忘的理论?

operating-system scheduling rtos scheduler

12
推荐指数
1
解决办法
3366
查看次数

Java:等待同步块,谁先走?

这个问题的灵感来自另一个问题.

如果多个线程在一个synchronized块上等待,并且锁定可用,谁先行?它是由线程优先级(然后先来先服务)?

并且适用相同的规则notify(使用多个wait线程)?

java multithreading jvm scheduling

12
推荐指数
2
解决办法
7958
查看次数

调度程序代码在什么上下文中运行?

schedule()调用调度程序代码有两种情况 -

  1. 当进程自愿调用时 schedule()

  2. 定时器中断调用 schedule()

在案例2中,我认为schedule()在中断上下文中运行,但第一种情况呢?它是在调用它的进程的上下文中运行的吗?

还有更多场景可以调用schedule()吗?

linux scheduling interrupt linux-kernel

12
推荐指数
1
解决办法
5492
查看次数