Laravel background jobs

C++ JAVA
User avatar
teroristd
Много Редовен
Много Редовен
Posts: 1769
Joined: Thu Feb 18, 2010 11:50 am
Answers: 83

Post by teroristd » Thu Apr 26, 2018 12:16 pm

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

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

И как да го спра сега?

User avatar
Revelation
Потребител
Потребител
Posts: 776
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 57

Post by Revelation » Thu Apr 26, 2018 12:38 pm

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

Спирането става така:
schtasks /end /tn "Laravel Scheduler"
Колкото до записването. Я да видя командата update:resources, която си направил.

User avatar
teroristd
Много Редовен
Много Редовен
Posts: 1769
Joined: Thu Feb 18, 2010 11:50 am
Answers: 83

Post by teroristd » Thu Apr 26, 2018 12:45 pm

Спрях я но прозорчето продължава да изскача?

User avatar
Revelation
Потребител
Потребител
Posts: 776
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 57

Post by Revelation » Thu Apr 26, 2018 12:53 pm

Тогава опитай направо да го изтриеш:
schtasks /delete /tn "Laravel Scheduler"

User avatar
teroristd
Много Редовен
Много Редовен
Posts: 1769
Joined: Thu Feb 18, 2010 11:50 am
Answers: 83

Post by teroristd » Thu Apr 26, 2018 12:59 pm

Revelation wrote:Колкото до записването. Я да видя командата update:resources, която си направил.
[php]
<?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);
}
}
[/php]

User avatar
Revelation
Потребител
Потребител
Posts: 776
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 57

Post by Revelation » Thu Apr 26, 2018 1:13 pm

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

Добави Kernel.php:

[php]
protected $commands = [
UpdateResources::class
];
[/php]

User avatar
teroristd
Много Редовен
Много Редовен
Posts: 1769
Joined: Thu Feb 18, 2010 11:50 am
Answers: 83

Post by teroristd » Thu Apr 26, 2018 1:18 pm

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

[php]
<?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');
}
}
[/php]

User avatar
Revelation
Потребител
Потребител
Posts: 776
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 57

Post by Revelation » Thu Apr 26, 2018 1:20 pm

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

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

[php]
php artisan schedule:run
[/php]

ръчно, тръгва ли?

User avatar
teroristd
Много Редовен
Много Редовен
Posts: 1769
Joined: Thu Feb 18, 2010 11:50 am
Answers: 83

Post by teroristd » Thu Apr 26, 2018 1:58 pm

И по двата начина се изпълнява.

User avatar
Revelation
Потребител
Потребител
Posts: 776
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 57

Post by Revelation » Thu Apr 26, 2018 2:45 pm

Всичко е наред значи?

Post Reply