我是Oracle SQL的初学者.我正在使用Oracle SQL开发人员工具.我有两个叫做p1和的程序p2.
如何使用链概念在每天的特定时间逐个执行程序,这意味着我应该p1首先执行,一旦完全执行.之后我必须p2每天在特定的时间执行.
在我的情况下,我必须在3.00时钟执行.供您参考,请参阅以下示例代码.有谁能解决这个问题?提前致谢
BEGIN
DBMS_SCHEDULER.CREATE_CHAIN (
chain_name => 'my_chain1',
rule_set_name => NULL,
evaluation_interval => NULL,
comments => NULL);
END;
/
BEGIN
DBMS_SCHEDULER.DEFINE_CHAIN_STEP('my_chain1', 'stepA', 'P1');
DBMS_SCHEDULER.DEFINE_CHAIN_STEP('my_chain1', 'stepB', 'P2');
END;
/
BEGIN
DBMS_SCHEDULER.DEFINE_CHAIN_RULE('my_chain1', 'TRUE', 'START stepA');
DBMS_SCHEDULER.DEFINE_CHAIN_RULE('my_chain1', 'stepA COMPLETED', 'Start stepB');
DBMS_SCHEDULER.DEFINE_CHAIN_RULE('my_chain1', 'stepB COMPLETED', 'END');
END;
/
BEGIN
DBMS_SCHEDULER.ENABLE('my_chain1');
END;
/
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'chain_job_1',
job_type => 'CHAIN',
job_action => 'my_chain1',
repeat_interval => 'freq=daily;byhour=13;byminute=0;bysecond=0', //In my case I should execute …Run Code Online (Sandbox Code Playgroud)我正在尝试让我的应用程序在 Android 9 上运行。以下代码在 Android 8 之前都可以正常工作,但出于某种原因,JobService 不会在 android 9 上重新安排。它第一次被安排,但不会根据到设置周期。
class RetrieveJobService : JobService() {
override fun onStartJob(params: JobParameters): Boolean {
doBackgroundWork(params)
return true
}
private fun doBackgroundWork(params: JobParameters) {
Thread {
try {
doRetrieveBackgroundStuff(this)
jobFinished(params, false)
} catch (e: Exception) {
jobFinished(params, false)
}
}.start()
}
override fun onStopJob(params: JobParameters): Boolean {
return false
}
}
Run Code Online (Sandbox Code Playgroud)
这里是我的 JobInfo.Builder
val builder = JobInfo.Builder(jobID, componentName)
.setPersisted(true)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
builder.setPeriodic(millis, 15 * 60 * 1000) //15 min
} …Run Code Online (Sandbox Code Playgroud) 我正在使用芹菜 4.3.0。我正在尝试根据 json 文件中的时间表每 5 秒更新一次 celery beat 的时间表,以便当我手动编辑、添加或删除该 json 文件中的计划任务时,celery beat 会获取更改调度程序而无需重新启动它。
我尝试的是创建一个任务,通过更新app.conf['CELERYBEAT_SCHEDULE']. 该任务每 5 秒成功运行一次,但 celery beat 不会更新到新的计划,即使我设置beat_max_loop_interval为 1 秒。
任务.py
from celery import Celery
app = Celery("tasks", backend='redis://', broker='redis://')
app.config_from_object('celeryconfig')
@app.task
def hello_world():
return "Hello World!"
@app.task
def update_schedule():
with open("path_to_scheduler.json", "r") as f:
app.conf['CELERYBEAT_SCHEDULE'] = json.load(f)
Run Code Online (Sandbox Code Playgroud)
芹菜配置文件
beat_max_loop_interval = 1 # Maximum number of seconds beat can sleep between checking the schedule
beat_schedule = {
"greet-every-10-seconds": {
"task": "tasks.hello_world",
"schedule": 10.0
}, …Run Code Online (Sandbox Code Playgroud) 我的团队维护一个应用程序(用 Java 编写),用于处理长时间运行的批处理作业。这些作业需要按定义的顺序运行。因此,应用程序在预定义的端口上启动套接字服务器以接受作业执行请求。它使套接字保持打开状态,直到作业完成(成功或失败)。这样,作业调度程序就知道一个作业何时结束,并且在成功完成该作业后,它会按预定义的顺序触发下一个作业。如果作业失败,调度程序会发出警报。
这是我们十多年来一直采用的设置。我们有一些作业需要运行几分钟,而另一些则需要几个小时(取决于数量)才能完成。该设置工作正常,没有任何问题。
现在,我们需要将此应用程序移至容器(RedHat OpenShift Container Platform),并且现有的基础设施策略仅允许公开默认的 HTTPS 端口。调度程序位于 OCP 外部,无法访问默认 HTTPS 端口以外的任何端口。
理论上,我们可以使用 HTTPS,将客户端超时设置为非常长的持续时间,并尝试模仿 TCP 套接字的当前设置。但是,由于 HTTP 协议是为服务短期请求而设计的,因此这种设置足够可靠吗?
我有Quartz编码如下,第一个作业完美运行:
JobDetail jd = null;
CronTrigger ct = null;
jd = new JobDetail("Job1", "Group1", Job1.class);
ct = new CronTrigger("cronTrigger1","Group1","0/5 * * * * ?");
scheduler.scheduleJob(jd, ct);
jd = new JobDetail("Job2", "Group2", Job2.class);
ct = new CronTrigger("cronTrigger2","Group2","0/20 * * * * ?");
scheduler.scheduleJob(jd, ct);
Run Code Online (Sandbox Code Playgroud)
但我发现Job2是Job1的一个完全独立的工作,它不会执行.
调度程序使用Java中的侦听器启动.我也尝试过使用scheduler.addJob(jd,true); 但没有变化.我在Windows 7上通过JVM运行Java.
我正在研究使用Quartz Scheduler,我想知道是否有可能不是按时间安排工作,而是在另一个工作完成时.因此,当Job A完成后,它会启动Job B.完成后,它会启动Job C等.
Job A -> Job B -> Job C -> Job A... continuously.
Run Code Online (Sandbox Code Playgroud)
这是工作的正确工具吗?或者我应该研究其他什么?
问题:考虑M台机器上n个作业的调度问题,其中每个作业具有处理时间p i,并且如果在时间t完成则给出利润g i(t).所有作业都在时间0释放.所有g i(t)都是非递增函数.为简单起见,我们可以假设机器不是先发制人的.
对于M = 1并且线性递减利润函数.使用贪婪算法可以在O(n)中解决这个问题.但对于一般功能,它是NP完全的.
我对一般情况感兴趣.请给我任何关于问题的论文或资源材料的链接.我在互联网上搜索但没有找到任何有趣的M> 1,尽管之前有关于近似M = 1边界的工作.
请注意,我不希望你解决这个问题,但只需要解决类似问题的先前工作,如果有的话.如果您有任何想法可以提供帮助,请随时分享.
我想知道m机器和n个具有相同发布日期和一般非增加利润函数的作业对此问题的界限.我找到了一份指向这个方向的文章
http://arxiv.org/pdf/1008.4889v1.pdf
当所有作业具有相同的释放时间时,它们给出O(1)近似值.我想找到类似的问题文献以及他们用来解决问题的想法.
我有一个jobcheduler触发了Jobservice的onStartjob.在onStartJob中,我启动了一个intentservice来完成这项工作.工作完成后,我希望intentservice对jobservice进行回调,以便可以调用onjobfinished.如何回复JobService?
如何检查作业是否安排在firebase作业调度程序中?以下代码适用于Job scheduler api -
public static boolean isJobServiceOn( Context context, int JOB_ID ) {
JobScheduler scheduler = (JobScheduler) context.getSystemService( Context.JOB_SCHEDULER_SERVICE ) ;
boolean hasBeenScheduled = false ;
for ( JobInfo jobInfo : scheduler.getAllPendingJobs() ) {
if ( jobInfo.getId() == JOB_ID ) {
hasBeenScheduled = true ;
break ;
}
}
return hasBeenScheduled ;
}
Run Code Online (Sandbox Code Playgroud)
在firebase工作调度员中有什么喜欢的吗?
job-scheduling ×10
android ×3
java ×2
algorithm ×1
approximate ×1
celery ×1
celerybeat ×1
chain ×1
http ×1
jobservice ×1
kotlin ×1
maximize ×1
np-complete ×1
nservicebus ×1
oracle ×1
python ×1
sql ×1