使用延迟选项取消队列中的作业(数据库驱动程序)
Cancel job in queue (database driver) with late option
我有一个系统可以预订带合同的房屋租赁(所有条款和条件)。
我将工作放入队列中,一封包含所有条款和条件(日期等)的电子邮件在创建预订时发送,另一封延迟发送,以便在入住前 2 天通知客户。
但如果我更改预订信息(例如日期),我需要取消队列中的任务。
我该怎么做?我使用数据库驱动程序。
BookingController 中有一行:
dispatch( new ReminderMailJob( $booking, $booking->customer ) )->delay( Carbon::parse( $booking->ends_at )->subDays( 3 ) );
我的数据库“工作”有一个屏幕table
如何 select 这一行并将其删除?
提前致谢
class SendReminers extends Command
{
protected $signature = 'booking:send-reminders';
protected $description = 'Send a reminders email to a users';
public function handle()
{
Booking::where(*your query*)
->each(fn($booking) => ReminderMailJob::dispatch($booking, $booking->customer)->now());
}
}
比计划任务,例如,五分钟
$schedule->command('booking:send-reminders')->everyFiveMinutes();
现在仅针对与任务执行时刻相关的预订发送提醒。
我有一个系统可以预订带合同的房屋租赁(所有条款和条件)。
我将工作放入队列中,一封包含所有条款和条件(日期等)的电子邮件在创建预订时发送,另一封延迟发送,以便在入住前 2 天通知客户。
但如果我更改预订信息(例如日期),我需要取消队列中的任务。
我该怎么做?我使用数据库驱动程序。
BookingController 中有一行:
dispatch( new ReminderMailJob( $booking, $booking->customer ) )->delay( Carbon::parse( $booking->ends_at )->subDays( 3 ) );
我的数据库“工作”有一个屏幕table
如何 select 这一行并将其删除?
提前致谢
class SendReminers extends Command
{
protected $signature = 'booking:send-reminders';
protected $description = 'Send a reminders email to a users';
public function handle()
{
Booking::where(*your query*)
->each(fn($booking) => ReminderMailJob::dispatch($booking, $booking->customer)->now());
}
}
比计划任务,例如,五分钟
$schedule->command('booking:send-reminders')->everyFiveMinutes();
现在仅针对与任务执行时刻相关的预订发送提醒。