mirror of
https://github.com/idanoo/laravel-resque.git
synced 2024-11-24 01:15:19 +00:00
initial commit
This commit is contained in:
parent
81d0771154
commit
c563d0e4ae
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
.idea/
|
||||
vendor/
|
||||
composer.lock
|
22
composer.json
Normal file
22
composer.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "hlgrrnhrdt/laravel-resque",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Holger Reinhardt",
|
||||
"email": "hlgrrnhrdt@gmail.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"illuminate/console": "^5.2",
|
||||
"chrisboulton/php-resque": "^1.2",
|
||||
"illuminate/config": "^5.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Hlgrrnhrdt\\Resque\\": "src/"
|
||||
}
|
||||
}
|
||||
}
|
19
src/Console/WorkCommand.php
Normal file
19
src/Console/WorkCommand.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
namespace Hlgrrnhrdt\Resque\Console;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
/**
|
||||
* WorkCommand
|
||||
*
|
||||
* @author Holger Reinhardt <hlgrrnhrdt@gmail.com>
|
||||
*/
|
||||
class WorkCommand extends Command
|
||||
{
|
||||
protected $name = 'resque:work';
|
||||
|
||||
public function fire()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
47
src/Job.php
Normal file
47
src/Job.php
Normal file
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
namespace Hlgrrnhrdt\Resque;
|
||||
|
||||
/**
|
||||
* Job
|
||||
*
|
||||
* @author Holger Reinhardt <hlgrrnhrdt@gmail.com>
|
||||
*/
|
||||
abstract class Job
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $queue = 'default';
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $arguments = [];
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function queue()
|
||||
{
|
||||
return $this->queue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function arguments()
|
||||
{
|
||||
return $this->arguments;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $queue
|
||||
*
|
||||
* @return Job
|
||||
*/
|
||||
public function onQueue($queue)
|
||||
{
|
||||
$this->queue = $queue;
|
||||
return $this;
|
||||
}
|
||||
}
|
22
src/Queue.php
Normal file
22
src/Queue.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
namespace Hlgrrnhrdt\Resque;
|
||||
|
||||
/**
|
||||
* Queue
|
||||
*
|
||||
* @author Holger Reinhardt <hlgrrnhrdt@gmail.com>
|
||||
*/
|
||||
class Queue
|
||||
{
|
||||
protected $name;
|
||||
|
||||
public function __construct($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
public function jobs()
|
||||
{
|
||||
\Resque::redis()->lrange('queue:' . $this->name, 0, -1);
|
||||
}
|
||||
}
|
33
src/ResqueManager.php
Normal file
33
src/ResqueManager.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
namespace Hlgrrnhrdt\Resque;
|
||||
|
||||
use Resque as PhpResque;
|
||||
|
||||
/**
|
||||
* Resque
|
||||
*
|
||||
* @author Holger Reinhardt <hlgrrnhrdt@gmail.com>
|
||||
*/
|
||||
class ResqueManager
|
||||
{
|
||||
/**
|
||||
* @var PhpResque
|
||||
*/
|
||||
private $resque;
|
||||
|
||||
public function __construct(PhpResque $resque)
|
||||
{
|
||||
$this->resque = $resque;
|
||||
}
|
||||
|
||||
public function enqueue(Job $job)
|
||||
{
|
||||
$this->resque->enqueue($job->queue(), get_class($job), $job->arguments());
|
||||
}
|
||||
|
||||
public function enqueueOnce(Job $job)
|
||||
{
|
||||
$queue = new Queue($job->queue());
|
||||
|
||||
}
|
||||
}
|
43
src/ResqueServiceProvider.php
Normal file
43
src/ResqueServiceProvider.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
namespace Hlgrrnhrdt\Resque;
|
||||
|
||||
use Config;
|
||||
use Hlgrrnhrdt\Resque\Console\WorkCommand;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Resque;
|
||||
|
||||
/**
|
||||
* ResqueServiceProvider
|
||||
*
|
||||
* @author Holger Reinhardt <hlgrrnhrdt@gmail.com>
|
||||
*/
|
||||
class ResqueServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Register the service provider.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
$this->registerManager();
|
||||
$this->registerWorkCommand();
|
||||
}
|
||||
|
||||
protected function registerManager()
|
||||
{
|
||||
$this->app->singleton(ResqueManager::class, function ($app) {
|
||||
$config = $app['config']['resque.connection'];
|
||||
$resque = new Resque();
|
||||
$resque->setBackend(implode(':', [$config['host'], $config['port']]), $config['db']);
|
||||
return new ResqueManager($resque);
|
||||
});
|
||||
}
|
||||
|
||||
protected function registerWorkCommand()
|
||||
{
|
||||
$this->app->singleton('command.resque.work', function () {
|
||||
return new WorkCommand();
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user