标签: job-scheduling

HA齿轮工作服务器的最佳实践是什么

从gearman的主页,他们提到运行多个作业服务器,因此如果作业服务器死亡,客户端可以选择一个新的作业服务器.鉴于下面的语句和图表,似乎作业服务器不会相互通信.

我们的问题是在作业服务器中排队的那些作业会发生什么?为这些服务器提供高可用性以确保作业不会因故障而中断的最佳做法是什么?

您可以运行多个作业服务器,并让客户端和工作人员连接到他们配置的第一个可用作业服务器.这样,如果一个作业服务器死亡,客户端和工作程序会自动故障转移到另一个作业服 您可能不希望运行太多作业服务器,但有两个或三个是冗余的好主意.

在此输入图像描述

资源

high-availability worker gearman job-scheduling

10
推荐指数
1
解决办法
3025
查看次数

结合Quartz.Net和UI

我一直在研究MVC3项目.我刚刚在我的应用程序中使用Quartz.Net创建了示例电子邮件发送作业.这一次,我需要在我的MVC3项目中构建一个作业调度系统.该场景完全基于UI.这意味着,系统的用户必须输入调度频率,例如,定义作业,通过UI调度时间.我试过Quartz.Net 2.0.1.我不知道将Quartz.Net与UI结合起来进行调度.

是否有可能使用UI附加调度程序.请建议我怎么做这个.

谢谢,

job-scheduling quartz.net-2.0

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

分布式作业调度,管理和报告

我最近玩过Hadoop,并对MapReduce作业的调度,管理和报告印象深刻.它似乎使新工作的分配和执行非常无缝,使开发人员能够专注于他们的工作实施.

我想知道Java域中是否存在任何不容易表示为MapReduce问题的作业的分布式执行?例如:

  • 需要任务协调和同步的工作.例如,它们可能涉及顺序执行任务,但同时执行某些任务是可行的:

                   .-- B --.
            .--A --|       |--.
            |      '-- C --'  |
    Start --|                 |-- Done
            |                 |
            '--D -------------'
    
    Run Code Online (Sandbox Code Playgroud)
  • 您希望分发的CPU密集型任务但不提供任何减少的输出 - 例如图像转换/调整大小.

那么是否有一个提供这种分布式计算环境的Java框架/平台?或者这种事情是否可以使用Hadoop接受/实现 - 如果有的话,这些工作的模式/指南是什么?

java hadoop distributed-computing job-scheduling

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

具有复杂依赖关系的任务调度

我正在寻找一种计划任务的方法,其中任务在几个先前的任务完成后开始.

我有几百个"收集器"进程,它从各种源收集数据并将其转储到数据库.一旦这些已经完成收集(从1秒到任何地方几分钟)我要立即揭开序幕一堆"数据处理"过程的分析,并在数据库中的数据的意义.当所有这些都完成后,我想要开始最终任务并向我发送摘要数据的电子邮件.

我目前正在使用Gearman队列并在我希望"收集器"进程完成后在计时器上启动数据处理任务,但这意味着处理步骤在10分钟后开始,即使收集器进程在3之后完成(或者更糟糕的是,还没有完成).

理想情况下,我可以指定特定的规则,例如"当进程A和(B或C)完成时启动进程X",或"当95%的指定进程已完成或已经过去10分钟时启动进程Y".

需要自动创建进程和依赖项,因为每次都会使用不同的参数运行(即,我每次都没有进行相同的计算).

我可以写某种使用队列和监控自己的图形依赖性框架,但它似乎像这种东西必须已经解决了,我找人谁使用像我描述.

php workflow scheduling gearman job-scheduling

9
推荐指数
1
解决办法
1486
查看次数

如何检测线程或进程是否因操作系统调度而变得饥饿

这是在Linux操作系统上.App是用C++用ACE库编写的.

我怀疑这个过程中的一个线程有时会被异常长时间(5到40秒)阻塞.该应用程序大多数时间运行良好,除了每天有几次这个问题.还有其他类似的5个应用程序在盒子上运行,由于大量的套接字传入数据,它们也受I/O限制.

我想知道是否有任何我可以以编程方式做的事情,看看线程/进程是否正在获得他们的时间片.

c++ linux operating-system ace job-scheduling

9
推荐指数
1
解决办法
2612
查看次数

Quartz.net中'DisallowConcurrentExecution'的确切含义是什么

我有一个Quartz.net Job,其定义如下.

    [PersistJobDataAfterExecution]
    [DisallowConcurrentExecution]
    public class AdItemsJob : IJob, IInterruptableJob
    {

        public void Execute(IJobExecutionContext context)
        { 
         // Job execution logic,

        }
   }
Run Code Online (Sandbox Code Playgroud)

因为我用DisallowConcurrentExecution属性装饰了Job .
我所知道的这个属性,我们不能同时运行同一个作业的多个实例.多个实例的含义是什么? 具有不同密钥
的两个作业是否AddItemsJob被称为相同实例或不同实例.
具有不同密钥的两个作业是否可以同时执行.

c# job-scheduling quartz.net

9
推荐指数
1
解决办法
8057
查看次数

Haskell中的作业调度

到目前为止,在Haskell中做了哪些工作来调度作业以本机方式执行?这是我正在思考的草图.

假设我有一个work我想要执行的功能Date,大概是将来(如果没有,我们可以安排它立即执行).在这种情况下,让我们假装有一种Jobmonad可以发生这种情况.

type JobId = ..
schedule :: Date -> Job () -> Job JobId
Run Code Online (Sandbox Code Playgroud)

这然后被传递到(优选持久)调度机制,这将在适当的时间执行预定作业,并且还提供某种形式的参考JobId,从而该作业可以检查或重新安排.我在Ruby中使用了几个不同的作业调度库,例如Delayed Job和Sidekiq.在Haskell社区中有关于作业调度问题的类似工作吗?也许在Haskell中,语言的本质使得模式足够简单,给定一些原始函数,库不是完全必要的?

haskell job-scheduling

9
推荐指数
1
解决办法
1277
查看次数

如何将Bundle转换为PersistableBundle?

API21释放的PersistableBundle是,该系统保存用于各种目的(束JobScheduler作业,ShortcutInfo小号等).我想要一个简单的方法来转换Bundle我的旧代码中存在的那些PersistableBundle......我怎么能这样做?

android bundle shortcut job-scheduling

9
推荐指数
2
解决办法
2293
查看次数

如何安全地安排Oracle dbms_scheduler作业时区和DST

我正在尝试设置一个DBMS_SCHEDULER作业,以便在每年1月1日凌晨1点在Oracle 11g上运行.如何设置其属性以确保它不会在错误的时间执行,因为时区差异或夏令时.

我花了很多时间浏览Oracle文档,但我还没有达到确定性水平.

顺便说一句,以下是我发现并考虑与该主题相关的规则:

工作属性

start_date 此属性指定计划启动此作业的第一个日期.如果start_date和repeat_interval保留为null,则作业将在计划启动后立即运行.对于重复使用日历表达式指定重复间隔的作业,start_date用作参考日期.第一次安排作业运行是当前日期或之后的日历表达式的第一个匹配.调度程序无法保证作业将在准确的时间执行,因为系统可能会过载,因此资源不可用.

repeat_interval此属性指定作业重复的频率.您可以使用日历或PL/SQL表达式指定重复间隔.评估指定的表达式以确定下次运行作业的时间.如果未指定repeat_interval,则作业将仅在指定的开始日期运行一次.有关详细信息,请参阅"日历语法".

Calendaring语法中的规则

  • 日历语法不允许您指定时区.而是Scheduler从start_date参数中检索时区.如果作业必须遵循夏令时调整,则必须确保为start_date的时区指定区域名称.例如,在纽约将start_date时区指定为"US/Eastern"将确保自动应用夏令时调整.如果将start_date的时区设置为绝对偏移量(例如"-5:00"),则不会遵循夏令时调整,并且您的作业执行将在一年中的一个半小时内关闭.
  • 当start_date为NULL时,Scheduler将确定重复间隔的时区,如下所示:
  • 它将检查会话时区是否为区域名称.会话时区可以通过以下任一方式设置:发出ALTER SESSION语句,例如:SQL> ALTER SESSION SET time_zone ='Asia/Shanghai'; 设置ORA_SDTZ环境变量.
  • 如果会话时区是绝对偏移而不是区域名称,则调度程序将使用DEFAULT_TIMEZONE Scheduler属性的值.有关更多信息,请参阅SET_SCHEDULER_ATTRIBUTE过程.
  • 如果DEFAULT_TIMEZONE属性为NULL,则在启用作业或窗口时,调度程序将使用systimestamp的时区.

timezone dbms-scheduler oracle11g dst job-scheduling

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

向Quartz.NET Windows服务动态添加和删除作业

我正在开发电子邮件营销WinForm应用程序.为了安排活动,我决定使用Quartz.NET.我需要它作为Windows服务运行.但我也希望用户能够通过该程序向服务添加一个作业(例如,需要每天早上8点运行的活动,基本上运行.bat文件).

我还保存了数据库中的所有作业计划,这样当您停止/启动操作系统或Windows服务时,它仍然可以从所有需要运行的作业中读取.

如何在服务运行时向服务添加作业?当然更优选的是向服务动态添加/删除作业.坦率地说,停止服务并从数据库中再次读取所有作业是我的最后手段.

c# windows-services job-scheduling winforms quartz.net

8
推荐指数
1
解决办法
5302
查看次数