myaero / aero-worker
There is no license information available for the latest version (v1.0.1) of this package.
Custom PHP Gearman worker package
v1.0.1
2024-11-20 22:27 UTC
Requires
- php: >=7.4
- ext-gearman: *
- symfony/console: ^6.0
README
Make sure you run `sudo apt-get install gearman-job-server php-gearman`
Install via composer `composer require myaero/aero-worker`
Run `vendor/bin/aeroworker` to start processing
OR setup on supervisor `sudo apt install supervisor -y`:
`[program:aeroworker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/vendor/bin/aeroworker
directory=/var/www/html
autostart=true
autorestart=true
user=root
numprocs=4
redirect_stderr=true
stdout_logfile=/var/log/supervisor/aeroworker.log`
Sample worker `aeroworker.conf`:
`namespace App\Queues\Workers;
use aeroWorker\WorkerInterface;
use aeroWorker\WorkerRegistry;
class EmailWorker implements WorkerInterface
{
public function getName(): string
{
return 'email_worker';
}
public function register($worker): void
{
$worker->addFunction('send_email', [$this, 'handleEmail']);
}
private function bootApplication(): void
{
require_once '/var/www/html/vendor/autoload.php';
app()->bootApplication();
}
public function handleEmail($job)
{
$this->bootApplication();
$workload = json_decode($job->workload(), true);
logger('testing logs');
return json_encode(['test' => 'email logged']);
}
}`