Как я могу выполнить команду по расписанию запуска, а также по кнопке? - PullRequest
0 голосов
/ 18 февраля 2020

Я создал команды в kernel.php, который работает twiceDaily(). Я также хочу прикрепить его кнопкой, чтобы запустить эту команду, нажав на эту кнопку. Когда я нажимаю на кнопку, она должна запускаться в этот момент.

В настоящее время я только что создал команду дважды в день, мне нужен лучший способ реализовать идею кнопки.

ядро. php

protected function schedule(Schedule $schedule)
{
    $schedule->job(new \App\Jobs\ResendAttachment)->twiceDaily(1, 13);
}

Я хочу запустить команду по заданию cron на сервере, а также по кнопке.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2020

То, что вы делаете сейчас, - это планирование работы на выполнение дважды в день. Тем не менее, вы также можете вручную отправить задание для запуска в этом экземпляре (или как только бегун сможет свободно обрабатывать вашу работу).

Вы можете создать действие контроллера, чтобы при кнопка нажата, контроллер отправляет задание. Например,

<?php

namespace App\Http\Controllers;

use App\Jobs\ResendAttachment;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class ExampleController extends Controller
{
    /**
     * Resend attachment.
     *
     * @param  Request  $request
     * @return Response
     */
    public function resendAttachment(Request $request)
    {
        ResendAttachment::dispatch();
    }
}
0 голосов
/ 18 февраля 2020

Добавьте маршрут, например:

Route::get('/resentattachment', 'YourController@resentattachment')->name('resent.attachment');

Вызовите команду с вашего контроллера

class YourController extends Controller
{
    public function resentattachment()
    {
        Artisan::call('yourcommand');
        echo 'Sent successfully';
        //add other stuff like a success view
    }
}

Вызовите этот маршрут по нажатию кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...