Sugarcrm支持产品指南糖开发人员糖开发人员指南10.3建筑学工作队列计划程序工作
此版本仅适用于Sugarcloud客户。

计划程序工作

概述

作业是从调度程序的指定函数的单独运行。本文将概述调度程序作业的各个部分。

特性

  • 名称 : Name of the job
  • scheduler_id. :创建作业的计划程序的ID。这可能是空的,因为计划员不需要创建作业
  • Execute_time. :准备好工作的时间
  • 地位 : Status of the job
  • 解析度 :注意工作是否成功
  • 信息 :包含作业生成的消息,包括错误
  • 目标 :作业调用的函数或网址
  • 数据 :数据附加到工作中
  • 重新提回 :Boolean确定作业是否会在队列中替换失败
  • retry_count: 确定系统将在失败之前重试作业的次数
  • fally_count. :作业失败的数字
  • Job_delay. :每个作业之间的延迟(以秒为单位)
  • designed_user_id. :将执行作业的用户标识为
  • 客户 :拥有这项工作的客户的名称
  • 百分比_complete. :对于推迟的工作,这可用于确定已完成的大部分工作

创造一份工作

要创建作业,您必须首先创建SchedulesJobs类的实例并在Sugarjobqueue中使用submitjob。一个例子如下所示:

<?php

$jq = new SugarJobQueue();
$job = new SchedulersJob();
$job->name = "My Job";
$job->target = "function::myjob";
$jobid = $jq->submitJob($job);

echo "Created job $jobid!";

工作目标

作业目标包含两个组件,类型和名称,由“::”分隔。类型可以是:

  • 功能 : 名称或静态方法名称(使用:: syntax)。此函数将作为第一个参数传递作业对象,如果 数据 不为空,它将作为第二个参数传递。
  • URL. :运行作业时要调用的外部URL

运行这份工作

该作业通过SchedulersJob中的Runjob()函数运行。此函数将根据目标函数返回的值返回布尔成功值。对于URL目标,HTTP错误代码小于400将返回成功。

如果函数从“运行”更新了作业状态,则忽略函数的返回值。目前,不支持推迟URL作业。

工作现状

作业可以按照以下状态:

  • 排队 :作业正在等待被执行的队列
  • 跑步 :目前正在执行该工作
  • 完毕 :工作已经执行并完成了

工作解决方案

作业完成后,可以设置作业分辨率,可以:

  • 排队 :工作仍然没有完成
  • 成功 :该工作已成功完成
  • 失败 : The job has failed
  • 部分的 :该工作部分完成,但需要完成

工作逻辑钩子

调度程序作业模块有两个可用于监视作业的其他逻辑挂钩。可以使用的附加钩子如下所示:

  • Job_failure_retry. :作业失败但将被重新检查
  • Job_Failure. :在最后一次失败时执行

您可以在这些钩子中找到更多信息 工作队列钩子 section.

话题

    如何创建和执行自己的自定义作业。
    此示例将演示如何将任务传递给作业队列。这使您可以发送更长的运行作业,例如发送电子邮件,调用Web服务或执行其他资源密集作业,以便在背景中的Cron异步处理。

最后修改:2021-01-06 23:28:41