jobd-php-example
This repository contains example of PHP integration with jobd. The code is mainly an excerpt from a real existent PHP application, with some changes.
To launch this example and see how it works, you will need to set up a jobd-master instance along with two jobd worker instances.
It was written and tested on my local machine with PHP 7.3, so I'm sharing all my configs as is. Don't forget to replace values, such as IP addresses, usernames, passwords and so on, with yours, and generally adjust it to your needs.
Configuration
jobd
jobd configs are included in the repo: jobd-1.conf
,
jobd-2.conf
, jobd-master.conf
.
MySQL
schema.sql
contains schema of MySQL table used in the example.
Runtime
For the sake of simplicity, runtime configuration (such as MySQL credentials)
is stored in init.php
as global constants. Adjust to your needs.
Usage
-
Make sure MySQL server is running.
-
Start jobd-master and two jobd instances:
jobd-master --config jobd-master.conf
jobd --config jobd-1.conf
jobd --config jobd-2.conf
-
Install dependencies with composer:
composer install
-
Test configuration:
php src/main.php test
This command will test MySQL and jobd connection.
You can also print the list of workers by executing:
jobctl --master list-workers
-
Launch test jobs:
php src/main.php hello
This will launch two
Hello
jobs, wait for results and print them. -
Launch another test job. This one will run in background. It just creates a file with the name you give it. Not like it's anything useful, but it's for the demo.
php src/main.php createfile
Note that if the path your specify is not absolute, it will be relative to the jobd's working directory, specified
launcher.cwd
config option.If it fails, just look into the MySQL table, there must be some error.
License
MIT