- Laravel background jobs
12345678910
WT форуми -> PHP MySQL ASP.NET -> Laravel background jobs
Създайте нова тема Напишете отговор 
Автор Съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1767
Мнение 26/04/2018 2:16 pm      Отговорете с цитат


Изписа ми това съобщение. Също примигва някакво прозорче от време на време, обаче в базата нямам промяна, а трябва да инкрементира.

SUCCESS: The scheduled task "Laravel Scheduler" has successfully been created.

И как да го спра сега?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 755
Мнение 26/04/2018 2:38 pm      Отговорете с цитат


Това прозорче е php.exe прозореца, който се рънва всяка минута от Task Scheduler-a.

Спирането става така:

Цитат:

schtasks /end /tn "Laravel Scheduler"


Колкото до записването. Я да видя командата update:resources, която си направил.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1767
Мнение 26/04/2018 2:45 pm      Отговорете с цитат


Спрях я но прозорчето продължава да изскача?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 755
Мнение 26/04/2018 2:53 pm      Отговорете с цитат


Тогава опитай направо да го изтриеш:

Цитат:

schtasks /delete /tn "Laravel Scheduler"
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1767
Мнение 26/04/2018 2:59 pm      Отговорете с цитат


Revelation написа:
Колкото до записването. Я да видя командата update:resources, която си направил.


PHP code:

<?php

namespace App\Console\Commands;

use App\Resource;
use Illuminate\Console\Command;

class UpdateResources extends Command
{
protected $signature = 'update:resources';

protected $description = 'Update resources in database.';

public function __construct()
{
parent::__construct();
}

public function handle()
{
\DB::table('resources')
->where('user_id', 1)
->increment('gold', 5);
}
}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 755
Мнение 26/04/2018 3:13 pm      Отговорете с цитат


А командата регистрира ли е в пропъртито $commands?

Добави Kernel.php:

PHP code:

protected $commands = [
UpdateResources::class
];
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1767
Мнение 26/04/2018 3:18 pm      Отговорете с цитат


Да командата си работи.

PHP code:

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
'App\Console\Commands\UpdateResources'
];

/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('update:resources')->everyMinute();
}

/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__ . '/Commands');

require base_path('routes/console.php');
}
}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 755
Мнение 26/04/2018 3:20 pm      Отговорете с цитат


Работи като я използваш ръчно от артизана или тръгна като цяло?

Също като извикаш

PHP code:

php artisan schedule:run


ръчно, тръгва ли?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1767
Мнение 26/04/2018 3:58 pm      Отговорете с цитат


И по двата начина се изпълнява.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 755
Мнение 26/04/2018 4:45 pm      Отговорете с цитат


Всичко е наред значи?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1767
Мнение 26/04/2018 9:09 pm      Отговорете с цитат


Very Happy не в смисъл командата работи, но се изпълнява един път. Явно трябва да мисля нещо друго. Имам VMware на лаптопа. Дали ще свърши някаква работа?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 755
Мнение 27/04/2018 12:19 am      Отговорете с цитат


teroristd написа:
Very Happy не в смисъл командата работи, но се изпълнява един път. Явно трябва да мисля нещо друго. Имам VMware на лаптопа. Дали ще свърши някаква работа?


Между другото, използвай така task scheduler-а и ще се оправи.

Цитат:

schtasks /create /sc minute /mo 1 /tn "Laravel Scheduler" /tr "php C:\xampp\htdocs\Game\artisan schedule:run"


Сега го тествах и проверих логовете и разбрах защо не се получава.
Така написан скеджълъра си работи идеално при мен.

П.П. Оказа се, че schedule:run си разпознава операционната система и си добавя нужните параметри след това. За това е нужно само да си се вика schedule:run.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
12345678910
Страница 3 от 10


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети