本文整理汇总了PHP中Illuminate\Queue\QueueManager类的典型用法代码示例。如果您正苦于以下问题:PHP QueueManager类的具体用法?PHP QueueManager怎么用?PHP QueueManager使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QueueManager类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: registerSortedRedisConnector
/**
* @param \Illuminate\Queue\QueueManager $manager
* @return void
*/
protected function registerSortedRedisConnector($manager)
{
$app = $this->app;
$manager->addConnector("sorted-redis", function () use($app) {
return new SortedRedisConnector($app["redis"]);
});
}
示例2: registerRedisConnector
/**
* Register the Redis queue connector.
*
* @param \Illuminate\Queue\QueueManager $manager
* @return void
*/
protected function registerRedisConnector($manager)
{
$app = $this->app;
$manager->extend('redis', function () use($app) {
return new RedisConnector($app['redis']);
});
}
示例3: registerGaeConnector
/**
* Register the GAE queue connector.
*
* @param \Illuminate\Queue\QueueManager $manager
* @return void
*/
protected function registerGaeConnector($manager)
{
$app = $this->app;
$manager->addConnector('gae', function () use($app) {
return new GaeConnector($app['encrypter'], $app['request']);
});
}
示例4: registerResqueConnector
/**
* Register the Resque queue connector.
*
* @param \Illuminate\Queue\QueueManager $manager
* @return void
*/
protected function registerResqueConnector($manager)
{
$manager->addConnector('resque', function () {
$config = Config::get('database.redis.default');
Config::set('queue.connections.resque', array_merge($config, ['driver' => 'resque']));
return new ResqueConnector();
});
}
示例5: registerResqueConnector
/**
* Register the Resque queue connector.
*
* @param \Illuminate\Queue\QueueManager $manager
* @return void
*/
protected function registerResqueConnector($manager)
{
$connections = Config::get('queue.connections', []);
foreach ($connections as $connection) {
if ($connection['driver'] !== 'resque') {
$manager->addConnector($connection['driver'], function () {
return new ResqueConnector();
});
}
}
$manager->addConnector('resque', function () {
$config = Config::get('database.redis.default');
Config::set('queue.connections.resque', array_merge($config, ['driver' => 'resque']));
return new ResqueConnector();
});
}
示例6: registerIronConnector
/**
* Register the IronMQ queue connector.
*
* @param \Illuminate\Queue\QueueManager $manager
* @return void
*/
protected function registerIronConnector($manager)
{
$app = $this->app;
$manager->addConnector('iron', function () use($app) {
return new IronConnector($app['encrypter'], $app['request']);
});
$this->registerIronRequestBinder();
}
示例7: process
/**
* {@inheritdoc}
*
* @throws \RuntimeException Thrown if the queue has not been set.
*/
public function process($url, $data, array $headers = [])
{
if (empty($this->queue)) {
throw new RuntimeException('Queue not set');
}
$data = ['url' => $url, 'data' => $data, 'headers' => $headers, 'transport' => $this->transport->toArray()];
$this->queue->push('rcrowe\\Raven\\Handler\\Laravel\\Job', $data);
}
示例8: push
/**
* Pushes a job into a specific queue connection.
*
* If you are using multiple SQS queues, this method might be useful.
* Instead of having to provide the whole queue URL every time you want to
* push a job into it, you just provide the name of the queue connection
* as set in the configuration file.
*
* @param mixed $job
* @param array $data
* @param string $connection Name of the connection
* @param string $queue
*
* @return mixed
*/
public function push($job, array $data, $connection = null, $queue = null)
{
if ($connection == null) {
return $this->manager->push($job, $data, $queue);
}
$connection = $this->manager->connection($connection);
return $connection->push($job, $data, $queue);
}
示例9: handle
/**
* Handle the event.
*
* @param VoteWasOpened $event
* @return void
*/
public function handle(VoteWasOpened $event)
{
/**
* Queue OpenVoteCommand
*/
$command = new CloseVotingCommand($event->vote);
$delay = $event->vote->close_date->timestamp - $this->carbon->now()->timestamp;
$this->queue->laterOn('voting', $delay, $command);
}
示例10: clear
/**
* {@inheritDoc}
*/
public function clear($connection, $queue)
{
$count = 0;
$connection = $this->manager->connection($connection);
while ($job = $connection->pop($queue)) {
$job->delete();
$count++;
}
return $count;
}
示例11: pop
/**
* Listen to the given queue.
*
* @param string $connectionName
* @param string $queue
* @param int $delay
* @param int $memory
* @param int $sleep
* @param int $maxTries
* @return void
*/
public function pop($connectionName, $queue = null, $delay = 0, $memory = 128, $sleep = 3, $maxTries = 0)
{
$connection = $this->manager->connection($connectionName);
$job = $this->getNextJob($connection, $queue);
// If we're able to pull a job off of the stack, we will process it and
// then make sure we are not exceeding our memory limits for the run
// which is to protect against run-away memory leakages from here.
if (!is_null($job)) {
$this->process($this->manager->getName($connectionName), $job, $maxTries, $delay);
} else {
$this->sleep($sleep);
}
}
示例12: later
/**
* Queue a new e-mail message for sending after (n) seconds.
*
* @param int $delay
* @param string $queue
* @return void
*/
public function later($delay, $queue = null)
{
if ($this->queueManager) {
$swiftMessage = $this->message->getSwiftMessage();
$this->queueManager->later($delay, new SendEmailJob($swiftMessage), $queue);
}
}
示例13: send
/**
* {@inheritdoc}
*/
public function send($data)
{
$this->eventId = array_get($data, 'event_id');
// send error now if queue not set
if (is_null($this->queue)) {
return $this->sendError($data);
}
// put the job into the queue
// Sync connection will sent directly
// if failed to add job to queue send it now
try {
$this->queue->connection(array_get($this->config, 'queue.connection'))->push(Job::class, $data, array_get($this->config, 'queue.name'));
} catch (Exception $e) {
return $this->sendError($data);
}
return;
}
示例14: install
/**
* Installs dependencies.
*
* @return boolean
*/
public function install()
{
if (!$this->isInstalling()) {
$this->queue->push(ComposerInstallJob::class);
return true;
} else {
return false;
}
}
示例15: runNextJob
/**
* Process the next job on the queue.
*
* @param string $connectionName
* @param string $queue
* @param \Illuminate\Queue\WorkerOptions $options
* @return void
*/
public function runNextJob($connectionName, $queue, WorkerOptions $options)
{
$job = $this->getNextJob($this->manager->connection($connectionName), $queue);
// If we're able to pull a job off of the stack, we will process it and then return
// from this method. If there is no job on the queue, we will "sleep" the worker
// for the specified number of seconds, then keep processing jobs after sleep.
if ($job) {
return $this->runJob($job, $connectionName, $options);
}
$this->sleep($options->sleep);
}