Имеется в разработке небольшой сервис для статистики. Суть задачи на кроне - это съем позиций с яндекса.
По итогу:
идем в класс Kernel
, метод schedule
и пишем следующее:
$schedule
->job(new RemoverPositions)
->withoutOverlapping()
->runInBackground()
->everyMinute()
->emailOutputTo("g7-99055@yandex.ru");
Код работника RemoverPositions
:
class RemoverPositions implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
$this->test("construct run");
}
public function test($value)
{
//sleep(10);
(new Test([
"value" => $value
]))->save();
}
public function __invoke()
{
$this->test("invoke");
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$this->test("handle");
}
}
В итоге раз в минуту и при каждом запросе дергает этот метод (срабатывает почему-то только конструктор). Как сделать так, что бы при обычных запросах (например открытие страницы) он этого не делал и всё же запускался в фоновом режиме?
P.S: В ларавеле совсем зеленый, как и в фраемворках в целом, сильно прошу не пинать)
//UPD: А так же при попытке выполнить консольно:
No scheduled commands are ready to run.
Такие вещи делаются через консольные artisan команды laravel:
php artisan make:command CommandName
после чего автоматически будет создан класс app/Console/Commands/CommandName.php
в нем задается сигнатура вызова и описание команды к примеру:
protected $signature = 'command:start';
protected $description = 'Моя тестовая команда';
В методе handle()
логика работы программы.
public function handle()
{
echo 'РАБОТАЕТ';
}
Далее в app/Console/Kernel.php
необходимо зарегистрировать консольную команду следующим образом
protected $commands = [
...
Commands\CommandName::class,
];
А в методе shedule() этого же класса
protected function schedule(Schedule $schedule)
{
...
$schedule->command(Commands\CommandName::class)->everyMinute();
}
После чего команда запускается каждую минуту, а если набрать в консоли php artisan
будет выведен список всех команд среди которых созданная нами команда command:start
, которую можно запустить следующим образом php artisan command:start
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В файле captchaphp я создаю gif изображения с помощью библиотеки GD и вывожу его в форме для отправки комментария к статье
есть код который публикует фото на стене, как его переделать под публикацию документа?