Я пишу Laravel JSON API, используя MySQL.То, что я пытаюсь сделать, это то, что когда пользователь создает запись, я хочу выполнять некоторые операции с этой записью каждые 24 часа, пока администратор не внесет некоторые изменения в эту запись.Так что в среднем эта работа будет повторяться 10-15 раз.это моя работа:
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use App\Http\Models\Orders\RoadOrder;
class RoadOrderEprirationHandler implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
protected $order_id;
public function __construct($order_id)
{
$this->order_id = $order_id;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$order = RoadOrder::findOrFail($this->order_id);
//do some tasks and if I need to run this cycle again :
$roadOrderEprirationHandler = new RoadOrderEprirationHandler($order->id);
$roadOrderEprirationHandler->dispatch($order->id)->delay(now()->addHours(24));
}
}
Итак, как вы можете видеть, я запускаю задание после завершения предыдущего задания, если администратор не изменил запись, и мне нужно снова запустить цикл.после нескольких циклов я больше не буду запускать работу, поэтому она будет закончена.
Мой вопрос:
Есть ли проблемы в этой реализации?возможно, я делаю что-то не так, или может произойти утечка памяти (потому что я снова и снова создаю работу внутри работы).Я могу написать это, но мне нужно быть уверенным, что эта реализация не приведет к каким-либо ошибкам или ошибкам.