2016-07-28 21:52:05 +00:00
|
|
|
<?php
|
|
|
|
namespace Hlgrrnhrdt\Resque;
|
|
|
|
|
|
|
|
use Hlgrrnhrdt\Resque\Console\WorkCommand;
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ResqueServiceProvider
|
|
|
|
*
|
|
|
|
* @author Holger Reinhardt <hlgrrnhrdt@gmail.com>
|
|
|
|
*/
|
|
|
|
class ResqueServiceProvider extends ServiceProvider
|
|
|
|
{
|
2016-07-29 16:03:41 +00:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public function boot()
|
|
|
|
{
|
2016-07-29 22:00:27 +00:00
|
|
|
$this->setRedisConfig();
|
2016-07-29 16:03:41 +00:00
|
|
|
}
|
|
|
|
|
2016-07-28 21:52:05 +00:00
|
|
|
/**
|
|
|
|
* Register the service provider.
|
|
|
|
*
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function register()
|
|
|
|
{
|
2016-07-29 16:03:41 +00:00
|
|
|
$this->registerResque();
|
2016-07-28 21:52:05 +00:00
|
|
|
$this->registerWorkCommand();
|
|
|
|
}
|
|
|
|
|
2016-07-29 16:03:41 +00:00
|
|
|
protected function registerResque()
|
2016-07-28 21:52:05 +00:00
|
|
|
{
|
2016-07-29 22:00:27 +00:00
|
|
|
$this->app->singleton(Resque::class, function () {
|
|
|
|
$prefix = $this->app['config']['resque.prefix'];
|
2016-07-29 23:49:45 +00:00
|
|
|
return (new Resque())->setPrefix($prefix ?: 'resque');
|
2016-07-28 21:52:05 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function registerWorkCommand()
|
|
|
|
{
|
2016-07-29 12:05:07 +00:00
|
|
|
$this->app->singleton('command.resque.work', function () {
|
2016-07-29 22:00:27 +00:00
|
|
|
return new WorkCommand($this->app->make(Resque::class));
|
2016-07-28 21:52:05 +00:00
|
|
|
});
|
2016-07-29 12:02:56 +00:00
|
|
|
$this->commands('command.resque.work');
|
2016-07-28 21:52:05 +00:00
|
|
|
}
|
2016-07-29 22:00:27 +00:00
|
|
|
|
|
|
|
protected function setRedisConfig()
|
|
|
|
{
|
2016-08-01 07:54:54 +00:00
|
|
|
$config = $this->app['config']['database.redis.default'];
|
2016-07-29 22:00:27 +00:00
|
|
|
|
|
|
|
$host = isset($config['host']) ? $config['host'] : 'localhost';
|
|
|
|
$port = isset($config['port']) ? $config['port'] : 6379;
|
|
|
|
$database = isset($config['database']) ? $config['database'] : 0;
|
|
|
|
|
|
|
|
$server = implode(':', [$host, $port]);
|
|
|
|
|
|
|
|
\Resque::setBackend($server, $database);
|
|
|
|
}
|
2016-07-28 21:52:05 +00:00
|
|
|
}
|