标签: jobs

如何在 Spring Quartz Scheduler 中跳过特定作业执行

我有一个 CronExpression 设置为每 30 分钟执行一次作业。但如果之前的工作未完成,我需要跳过特定的工作。

例如。我有 100 名员工的姓名需要在数据库中更新,我将其称为“Job1”,从上午 10 点开始。现在的情况就像“Job1”正在处理中,当我有另一项工作“Job2”时,我需要更新另外 50 名员工的姓名。我的问题是这样的,我需要跳过“Job2”和其他作业,直到我当前运行的作业完成。

    <bean name="employeeNameUpdateJob" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="name" value="Employee Update Job"/>
        <property name="group" value="Employee Update Group Job"/>
        <property name="jobClass"
            value="com.emp.scheduler.EmployeeUpdateScheduler" />
        <property name="volatility" value="false" />
    </bean>

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="name" value="Employee Update Trigger"/>
        <property name="group" value="Employee Update Group Trigger"/>
        <property name="volatility" value="false" />
        <property name="jobDetail" ref="employeeNameUpdateJob"/>
        <property name="cronExpression" value="0 0/30 * * * ?"/>
    </bean>
Run Code Online (Sandbox Code Playgroud)

java jobs spring quartz-scheduler

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

为什么YARN上有mapreduce.jobtracker.address配置?

YARN是Hadoop第二代,不再使用jobtracker守护进程,而是用资源管理器代替。但是为什么在mapred-site.xml hadoop 2上有一个mapreduce.jobtracker.address属性呢?

xml jobs hadoop mapreduce hadoop-yarn

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

如何测试 laravel 连续工作?

我正在使用Laravel 5.6,应该为某些功能创建功能测试。在某些条件下,如果从第一个作业执行第二个作业,我如何测试两个作业的调度。

它看起来像这样:

class FirstJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;


    public function handle()
    {
        dispatch(new SecondJob());
    }
}
Run Code Online (Sandbox Code Playgroud)

顺序断言看不到第二个作业。

Queue::assertPushed(FirstJob::class);// 断言

Queue::assertPushed(SecondJob::class);// 未断言

testing queue jobs laravel

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

大查询表中整体的加载顺序

我有一些示例数据已加载到 Google BigQueries 中。我一直以 ndjson 格式导入数据。如果我将所有数据加载到一个文件中,我会看到它们在表的预览选项卡中以不同的顺序显示,而不是按顺序一次导入一行 ndjson 时的顺序。

依次导入时,我会等到看到以下输出:

Waiting on bqjob_XXXX ... (2s) Current status: RUNNING
Waiting on bqjob_XXXX ... (2s) Current status: DONE 
Run Code Online (Sandbox Code Playgroud)

行显示的顺序似乎与我附加它们的顺序相匹配,因为导入它们的作业似乎在我继续下一个之前完成。但是,当将它们全部加载到一个文件中时,它们的显示顺序与我的数据文件中的顺序不同。

那么为什么批量加载时数据条目会以不同的顺序显示呢?数据条目如何排队等待加载以及它们如何索引到表中?

jobs google-bigquery

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

将身份验证用户数据传递到队列作业类

我创建了一个在后台处理 PDF 的作业。工作完成后,我想向 Auth 用户发送一封电子邮件,其中包含下载新生成的 PDF 的链接。

这是我目前正在做的事情。

控制器:

        public function haitiKidPdfAll(){
            $pdfUser = User::find(Auth::user()->id);
            $haitiKids = Kid::
            whereRaw('sponsors_received < sponsors_needed')
            ->where('current_country', 'Haiti')
            ->orderBy('sponsors_received', 'ASC')
            ->get();

            ProcessPdfHaiti::dispatch($haitiKids,$pdfUser);
            return back()->with('info','This will take a couple minutes. I\'ll email you when it\'s completed.');
Run Code Online (Sandbox Code Playgroud)

流程Pdf海地工作:

此处出现错误:未定义的变量:pdfUser {“异常”:“[对象](ErrorException(代码:0):未定义的变量:第53行的pdfUser。在$pdfUserEmail = $pdfUser->email;下面的代码中。

class ProcessPdfHaiti implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $haitiKids;
    public $pdfUser;

    public function __construct($haitiKids,$pdfUser)
    {
        $this->haitiKids = $haitiKids;
        $this->pdfUser = $pdfUser;
    }

    public function handle()
    {

        ...PDF Query Stuff

        $pdfUserEmail …
Run Code Online (Sandbox Code Playgroud)

php jobs laravel

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

如何更改 Laravel 的作业批处理表名称和连接

Laravel 8 引入了Job Batching,它允许批量执行作业并在批量完成时执行操作。但是 Laravel 文档没有有关作业批处理表和数据库连接配置的部分。

如何为job_batching表指定不同的数据库,是否可以重命名job_batching表名?

php queue jobs laravel job-batching

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

PHP 是单线程的,laravel 中的作业和队列如何工作?

昨天面试了,他问了我一个问题。PHP 是一种单线程语言,那么工作和队列在 Laravel 背后是如何工作的呢?

php queue jobs laravel

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

Shell脚本不从cron作业执行

shell脚本:

#!/bin/sh
services=( httpd named proftpd mysqld dovecot postfix webmin)

for service in ${services[@]}
do

if ps ax | grep -v grep | grep $service > /dev/null
then
    echo "$service service running, everything is fine"     
else
    echo "$service is not running"
    service $service start
fi

done 
Run Code Online (Sandbox Code Playgroud)

文件可执行文件,从root用户运行

命令:

bash /etc/mycron/checkServices.sh
Run Code Online (Sandbox Code Playgroud)

试着嘘,只是 /etc/mycron/checkServices.sh

不运行

linux shell cron jobs

0
推荐指数
1
解决办法
7683
查看次数

laravel:恢复后得到工作ID

我如何才能进入laravel 5.2 的工作id
关于这个链接,我试过getJobId(),但不起作用.

当我使用dd()thers 获取日志时,当然id可能是受保护的.所以我无法访问它.

#job: {#459 +"id": 233 +"queue": "offers" +"payload": "{"job":"Illuminate\\Queue\\CallQueuedHandler@call","data":....}" +"attempts": 50 +"reserved": 0 +"reserved_at": null +"available_at": 1464615540 +"created_at": 1464615540 }

queue jobs laravel-5.2

0
推荐指数
1
解决办法
3147
查看次数

如何在Talend中动态猜测Mysqlinput中的模式

我已经构建了一个将数据从mysql db表复制到b mysql表的作业.表列是相同的,除非有时可以在表中添加新列.

我想从a到b中检索所有列,但只检索表b中存在的列.我能够在表b中存在查询特定的选择colume语句,如:

select coulmn1,column2,columns3... from table a
Run Code Online (Sandbox Code Playgroud)

问题是如果我在b中添加一个与mysqlinput中的talend作业模式匹配的新列,也应该更改因为我使用build in type.

有没有办法在作业运行期间强制架构列?

mysql schema jobs talend

0
推荐指数
1
解决办法
493
查看次数