Example #1
0
    return (new JobDealer())->setLogger($app->cfg('log'))->setPheanstalk($app->cfg('pheanstalk'))->setTube($app->cfg('tube'));
})->cfg('getParams', function (µ $app) {
    $query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
    parse_str($query, $getParams);
    return $getParams;
});
if (file_exists('config.php')) {
    $config = (require 'config.php');
    foreach ($config as $key => $value) {
        $app->cfg($key, $value);
    }
}
try {
    echo $app->get('/job', function (µ $app, array $params) {
        /** @var JobDealer $jobDealer */
        $jobDealer = $app->cfg('job-dealer');
        return $jobDealer->peek()->getData();
    })->post('/job', function (µ $app, array $params) {
        /** @var JobDealer $jobDealer */
        $jobDealer = $app->cfg('job-dealer');
        $getParams = $app->cfg('getParams');
        $jobDealer->add(file_get_contents("php://input"), !empty($getParams['priority']) ? $getParams['priority'] : PheanstalkInterface::DEFAULT_PRIORITY, !empty($getParams['delay']) ? $getParams['delay'] : PheanstalkInterface::DEFAULT_DELAY);
        http_response_code(201);
    })->delete('/job/(?<id>\\d+)', function (µ $app, array $params) {
        /** @var JobDealer $jobDealer */
        $jobDealer = $app->cfg('job-dealer');
        $jobDealer->done($params['id']);
    })->any('/reschedule/(?<id>\\d+)', function (µ $app, array $params) {
        /** @var JobDealer $jobDealer */
        $jobDealer = $app->cfg('job-dealer');
        $getParams = $app->cfg('getParams');