コード例 #1
0
 public function sendAction()
 {
     $config = ['driver' => 'smtp', 'host' => 'Host URL', 'port' => 587, 'encryption' => 'tls', 'username' => '*****@*****.**', 'password' => 'API secret key', 'from' => ['email' => '*****@*****.**', 'name' => 'Customer Support']];
     $mailer = new \Phalcon\Ext\Mailer\Manager($config);
     $queue = new Phalcon\Queue\Beanstalk(array('host' => '127.0.0.1', 'port' => '11300'));
     $queue->put(array('sendEmail' => rand()));
     while (($job = $queue->peekReady()) !== false) {
         $to = $this->request->getPost('to');
         $subject = $this->request->getPost('subject');
         $content = $this->request->getPost('content');
         $message = $mailer->createMessage()->to($to)->subject($subject)->content($content);
         $message->send();
         $job->delete();
     }
     return $this->flash->success("Email has been put to the queue!");
 }
コード例 #2
0
ファイル: BeanstalkTest.php プロジェクト: aisuhua/phalcon-php
 public function testBasic()
 {
     $queue = new Phalcon\Queue\Beanstalk();
     try {
         @$queue->connect();
     } catch (Exception $e) {
         $this->markTestSkipped($e->getMessage());
         return;
     }
     $expected = array('processVideo' => 4871);
     $queue->put($expected);
     while (($job = $queue->peekReady()) !== false) {
         $actual = $job->getBody();
         $job->delete();
         $this->assertEquals($expected, $actual);
     }
 }
コード例 #3
0
 public function run()
 {
     $config = DI::getDefault()->getConfig();
     $queue = new Phalcon\Queue\Beanstalk(array('host' => $config->monitor->beanstalkHost, 'port' => $config->monitor->beanstalkPort));
     while (($job = $queue->peekReady()) !== false) {
         $message = $job->getBody();
         if (isset($message['GatewayStatusUpdate'])) {
             $gatewayId = $message['GatewayStatusUpdate'];
             $gateway = Gateway::findFirstByID($gatewayId);
             if ($gateway) {
                 $slackMessage = 'Gateway ' . $gateway->eui;
                 if (!empty($gateway->remarks)) {
                     $slackMessage .= ' (' . $gateway->remarks . ')';
                 }
                 $slackMessage .= ' is now ' . $gateway->status . '!';
                 $slackMessage .= "\n" . 'it was last seen on ' . $gateway->last_seen;
                 $slackMessage .= "\n" . 'more details at <http://ttnstatus.org/gateways/' . $gateway->eui . '>';
                 $this->sendSlackMessage($slackMessage);
             }
         }
         $job->delete();
     }
 }
コード例 #4
0
ファイル: BeanstalkTest.php プロジェクト: UqiOnline/cphalcon7
 public function testReleaseKickBury()
 {
     $queue = new Phalcon\Queue\Beanstalk();
     try {
         @$queue->connect();
     } catch (Exception $e) {
         $this->markTestSkipped($e->getMessage());
         return;
     }
     $this->assertTrue($queue->choose('beanstalk-test') !== false);
     $task = 'doSomething';
     $this->assertTrue($queue->put($task) !== false);
     $this->assertTrue($queue->watch('beanstalk-test') !== false);
     $job = $queue->reserve(0);
     $this->assertTrue($job !== false);
     $this->assertEquals($task, $job->getBody());
     $this->assertTrue($job->touch());
     // Release the job; it moves to the ready queue
     $this->assertTrue($job->release());
     $job = $queue->reserve(0);
     $this->assertTrue($job !== false);
     $this->assertEquals($task, $job->getBody());
     // Bury the job
     $this->assertTrue($job->bury());
     $job = $queue->peekBuried();
     $this->assertTrue($job !== false);
     $this->assertEquals($task, $job->getBody());
     // Kick the job, it should move to the ready queue again
     // kick-job is supported since 1.8
     if (false !== $job->kick()) {
         $job = $queue->peekReady();
         $this->assertTrue($job !== false);
         $this->assertEquals($task, $job->getBody());
     }
     $this->assertTrue($job->delete());
 }
コード例 #5
0
ファイル: BeanstalkTest.php プロジェクト: acwtools/cphalcon
 public function testStats()
 {
     $queue = new Phalcon\Queue\Beanstalk();
     try {
         @$queue->connect();
     } catch (Exception $e) {
         $this->markTestSkipped($e->getMessage());
         return;
     }
     $this->assertTrue($queue->choose('beanstalk-test') !== false);
     $queueStats = $queue->stats();
     $this->assertTrue(is_array($queueStats));
     $tubeStats = $queue->statsTube('beanstalk-test');
     $this->assertTrue(is_array($tubeStats));
     $this->assertTrue($tubeStats['name'] === 'beanstalk-test');
     $this->assertTrue($queue->statsTube('beanstalk-test-does-not-exist') === false);
     $this->assertTrue($queue->choose('beanstalk-test') !== false);
     $queue->put('doSomething');
     $queue->watch('beanstalk-test');
     $job = $queue->peekReady();
     $jobStats = $job->stats();
     $this->assertTrue(is_array($jobStats));
     $this->assertTrue($jobStats['tube'] === 'beanstalk-test');
 }