1. Go to this page and download the library: Download atlasmobile/yii2-queue library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
namespace console\jobs;
class MyJob implements \atlasmobile\queue\QueueHandler
{
public function run(\atlasmobile\queue\Job $job, $data)
{
//process $data;
var_dump($data);
}
}
namespace console\jobs;
class MyJob extends \atlasmobile\queue\BaseTask
{
public function beforeRun(Job $job, QueuePayload $payload) {
//todo before running task
}
public function run(\atlasmobile\queue\Job $job, $data)
{
//process $data;
var_dump($data);
}
public function afterRun(Job $job, QueuePayload $payload) {
//todo after running task
}
public function onFail(Job $job, QueuePayload $payload, \Exception $exception) {
//todo what to do on fail running task
}
}
// You can use component directly or static method to push job to queue:
\atlasmobile\queue\helpers\Queue::push($job, $data = null, $queue = 'default', $options = [])
// Push job to the default queue and execute "run" method
Yii::$app->queue->push(\console\jobs\MyJob::class, ['a', 'b', 'c']);
// or push it and execute any other method
Yii::$app->queue->push('\console\jobs\MyJob@myMethod', ['a', 'b', 'c']);
// or push it to some specific queue
Yii::$app->queue->push(\console\jobs\MyJob::class, ['a', 'b', 'c'], 'myQueue');
// or both
Yii::$app->queue->push('\console\jobs\MyJob@myMethod', ['a', 'b', 'c'], 'myQueue');
// Just a string
Yii::$app->queue->pushDelayed(\console\jobs\MyJob::class, '+3 hours', ['a', 'b', 'c']);
// Or \DateTime
$dt = new \DateTime('now');
$dt->modify('+1 week')->modify('+3 days');
Yii::$app->queue->pushDelayed(\console\jobs\MyJob::class, $dt, ['a', 'b', 'c']);
// Or oldschool
Yii::$app->queue->pushDelayed(\console\jobs\MyJob::class, time() + 86400, ['a', 'b', 'c']);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.