0
私は単純なキューを書いています。ジョブをフェイルして、Laravelのキューで次の試行をスキップする方法はありますか?
namespace App\Jobs;
use App\SomeMessageSender;
class MessageJob extends Job
{
protected $to;
protected $text;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($to, $text)
{
$this->to = $to;
$this->text = $text;
}
/**
* Execute the job.
*
* @return void
*/
public function handle(SomeMessageSender $sender)
{
if ($sender->paramsAreValid($this->to, $this->text) {
$sender->sendMessage($this->to, $this->text);
}
else {
// Fail without being attempted any further
throw new Exception ('The message params are not valid');
}
}
}
のparamsは、上記のコードは失敗するジョブを引き起こすが、それはまだ左の試みを持っている場合、それは再試行されます例外がスローされます有効でない場合。代わりに、私はこれをに即座に失敗させ、再び試みないようにしたい。
どうすればいいですか?
'paramsAreValid'で正確に何をチェックしますか?多分あなたはそれを早くにすることができ、最初の仕事を押し進めることさえできないからです。 – Loek
ソースコードは単なる例です。以前に検証チェックを実行できないとします。 –