我们通过JobScheduler实现了一个Job,用于后台加载数据.这项工作每天会开一次.我们可以使用哪些工具来测试此功能(可能是ADB)?
用例是能够模拟运行作业所需的条件,或者只是说"运行此作业"作为我们自动化测试套件的一部分.
有没有人找到任何替代Quartz的开源解决方案,他们很满意?
我知道Cronacle是一个备受尊重(且价格昂贵)的闭源解决方案,用于作业调度,但我想确保在走下这条路线之前耗尽开源替代品.
我如何每分钟运行一次在詹金斯创建的工作?我错过了什么吗?
PS:我试图不使用:*/1****

我想编写一个后台作业(EJB 3.1),它每分钟执行一次.为此,我使用以下注释:
@Schedule(minute = "*/1", hour = "*")
Run Code Online (Sandbox Code Playgroud)
这工作正常.
但是,有时候这项工作可能需要一分多钟.在这种情况下,计时器仍然被触发,导致线程问题.
如果当前执行没有完成,是否可以终止调度程序?
我已经完成了spark安装并执行了几个设置master和worker节点的测试用例.也就是说,我对Spark上下文(而不是SparkContext)中的作业意味着什么非常混乱.我有以下问题
我阅读了Spark文档,但这件事对我来说还不清楚.
话虽如此,我的实现是编写火花作业{programmatically},这将火花提交.
如果可能,请帮助一些例子.这将非常有帮助.
注意:请不要发布spark链接,因为我已经尝试过了.虽然这些问题听起来很幼稚,但我仍需要更清晰的理解.
我一直在尝试apache火花.我的问题更具体地触发火花工作.在这里,我发布了关于理解火花工作的问题.在弄脏工作后,我转向了我的要求.
我有一个REST端点,我公开API来触发Jobs,我使用Spring4.0进行Rest实现.现在继续我想在Spring中实现Job as Service,我将以编程方式提交Job,这意味着当触发端点时,使用给定的参数我将触发该作业.我现在有很少的设计选择.
类似于下面的写作,我需要维护几个由抽象类调用的作业JobScheduler.
/*Can this Code be abstracted from the application and written as
as a seperate job. Because my understanding is that the
Application code itself has to have the addJars embedded
which internally sparkContext takes care.*/
SparkConf sparkConf = new SparkConf().setAppName("MyApp").setJars(
new String[] { "/path/to/jar/submit/cluster" })
.setMaster("/url/of/master/node");
sparkConf.setSparkHome("/path/to/spark/");
sparkConf.set("spark.scheduler.mode", "FAIR");
JavaSparkContext sc = new JavaSparkContext(sparkConf);
sc.setLocalProperty("spark.scheduler.pool", "test");
// Application with Algorithm , transformations
Run Code Online (Sandbox Code Playgroud)扩展到上面有服务处理的多个版本的作业.
或者使用Spark Job Server来执行此操作.
首先,我想知道在这种情况下最佳解决方案是什么,执行方式和扩展方式.
注意:我正在使用来自spark的独立群集.善意的帮助.
rest job-scheduling spring-batch apache-spark spring-data-hadoop
我在YARN Fair Scheduled队列上重新平衡Apache Spark作业资源时遇到问题.
对于测试,我已经配置了Hadoop 2.6(也尝试过2.7)以在MacOS上使用本地HDFS以伪分布式模式运行.对于作业提交使用Spark的网站上的 "Pre-build Spark 1.4 for Hadoop 2.6 and later"(也试过1.5).
在Hadoop MapReduce作业上使用基本配置进行测试时,Fair Scheduler按预期工作:当群集资源超过某个最大值时,将计算公平份额,并根据这些计算抢占和平衡不同队列中作业的资源.
使用Spark作业运行相同的测试,在这种情况下,YARN正在为每个作业正确计算公平份额,但Spark容器的资源不会重新平衡.
这是我的conf文件:
$ HADOOP_HOME的/ etc/Hadoop的/纱线的site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property>
<name>yarn.scheduler.fair.preemption</name>
<value>true</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
$ HADOOP_HOME的/ etc/Hadoop的/公平scheduler.xml
<?xml version="1.0" encoding="UTF-8"?>
<allocations>
<defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
<queue name="prod">
<weight>40</weight>
<schedulingPolicy>fifo</schedulingPolicy>
</queue>
<queue name="dev">
<weight>60</weight>
<queue name="eng" />
<queue name="science" />
</queue>
<queuePlacementPolicy>
<rule name="specified" create="false" />
<rule name="primaryGroup" create="false" /> …Run Code Online (Sandbox Code Playgroud) DBMS_JOB和DBMS_SCHEDULER有什么区别?
我的问题的一部分,我如何在"Nougat"中以不到15分钟的间隔建立一个工作,在他的答案中被"暴雪"回答:
Job Scheduler没有在Android N上运行
他解释了问题并建议使用以下解决方法:
JobInfo jobInfo;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setMinimumLatency(REFRESH_INTERVAL)
.setExtras(bundle).build();
} else {
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setPeriodic(REFRESH_INTERVAL)
.setExtras(bundle).build();
}
Run Code Online (Sandbox Code Playgroud)
但是,使用建议
.setMinimumLatency(REFRESH_INTERVAL)
Run Code Online (Sandbox Code Playgroud)
刚开始工作一次;
但是如何在Android牛轧糖设备(不使用处理程序或报警管理器)上定期获得约30秒的周期?
我需要一个可以通过Internet控制的作业队列管理器.它应该能够执行和停止进程,检查它们的状态(理想情况下通知并在进程退出时执行一些代码),响应命令并且还能够向服务器报告.
背景:我有一个GWT应用程序,允许创建在云实例(目前是EC2)上执行的作业.我想将"作业包"(进程操作的数据等)推送到S3,启动Linux EC2实例(或使用已经运行的实例),并告诉实例上的作业管理器执行该作业(可能与其他工作平行).然后,它应该从S3中提取"作业数据包",运行对该数据进行操作的进程,并使用一些信息(例如退出代码,stdout,stderr)向运行GWT应用程序的服务器部分的服务器报告.如果我必须将stdour/err写入进程中的文件并读取该文件,那也没关系.
我真的希望管理器"关闭"它运行的进程,这意味着我想避免使用来自JDK的Runtime.exec之类的东西.如果我以Quartz为例,似乎我必须这样做.
我很好,两个方向的调用都是异步的.只要我可以在我的GWT服务器端轻松地为它构建一个接口(例如,通过SSL对servlet的HTTP请求将是非常简单的),我对任何合理的调用技术都很好.
作业管理员不需要非常复杂的排队系统.顺序或并行运行几个进程应该没问题.确定一个进程在其生命周期内收到的计算时间是多么好(AFAIK,这可能具有挑战性).
我还没有找到任何现有的软件,包括http://java-source.net/open-source/job-schedulers.我怀疑我可能需要围绕一个职业经理建立一个RPC接口(当然还有身份验证等); 也许使用像Apache Commons Exec这样的东西.在这种情况下,我更喜欢Java或Python作为工作管理器部分.
我很乐意听到前一个或后一个场景的建议!
job-scheduling ×10
apache-spark ×3
android ×2
java ×2
build ×1
cron ×1
dbms-job ×1
ejb-3.1 ×1
gwt ×1
hadoop ×1
hadoop-yarn ×1
java-ee ×1
jenkins ×1
job-queue ×1
oracle ×1
rest ×1
rpc ×1
schedule ×1
scheduler ×1
spring-batch ×1