1. Go to this page and download the library: Download openclerk/jobs 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/ */
openclerk / jobs example snippets
use \Openclerk\Jobs\Job;
use \Db\Connection;
use \Monolog\Logger;
class MyJob implements Job {
/**
* @param $job the `job` instance, an array of `job_type`, `arg_id` and optionally `user_id`
*/
function __construct($job) {
$this->job = $job;
}
function run(Connection $db, Logger $logger) {
$q = $db->prepare("SELECT * FROM table WHERE id=?");
$q->execute(array($this->job['arg_id']));
if (!$q->fetch()) {
throw new \Exception("Could not find that instance");
}
}
function passed(Connection $db, Logger $logger) {
// (optional) the job passed
}
function failed(\Exception $runtime_exception, Connection $db, Logger $logger) {
// (optional) the job failed
}
}
use \Openclerk\Jobs\JobQueuer;
use \Openclerk\Jobs\Job;
use \Db\Connection;
use \Monolog\Logger;
class MyJobQueuer extends JobQueuer {
/**
* Get a list of all jobs that need to be queued, as an array of associative
* arrays with (job_type, arg_id, [user_id]).
*/
function findJobs(Connection $db, Logger $logger) {
$result = array();
$q = $db->prepare("SELECT * FROM table WHERE is_queued=0");
$q->execute();
while ($r = $q->fetch()) {
$result[] = array(
'job_type' => 'table',
'arg_id' => $r['id'],
// optional: user_id
);
}
return $result;
}
/**
* The given job has been queued up, so we can mark it as successfully queued.
*/
function jobQueued(Connection $db, Logger $logger, $job) {
$q = $db->prepare("UPDATE table SET is_queued=1 WHERE id=?");
$q->execute(array($job['arg_id']));
}
}
use \Openclerk\Jobs\JobRunner;
use \Openclerk\Jobs\Job;
use \Db\Connection;
use \Monolog\Logger;
class MyJobRunner extends JobRunner {
/**
* Get the {@link Job} to run for this job type.
*/
function createJob($job, Connection $db, Logger $logger) {
switch ($job['job_type']) {
case 'table':
return new MyJob($job);
}
}
}
$logger = new \Monolog\Logger("batch_queue");
$logger->pushHandler(new \Core\MyLogger());
$runner = new MyJobQueuer();
$runner->queue(db(), $logger);
$logger = new \Monolog\Logger("batch_run");
$logger->pushHandler(new \Core\MyLogger());
$runner = new MyJobRunner();
$runner->runOne(db(), $logger);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.