1

こんにちは、私はphpでredisを初めて使用します。私は現在symfonyで作業しています。データを受け入れてメールを送信する簡単なフォームを作成しました。これが私のコントローラーです

namespace Ens\NewBundle\Controller;
use Ens\NewBundle\Entity\Product;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\FormBuilder;

require '/var/www/predis/autoload.php';
        \Predis\Autoloader::register();



require_once('Services/Notification.php');

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{

起動時に実行する関数。

 public function indexAction()
    {
            $x=array('to'=>'ucerturohit@gmail.com','name'=>'Rohitashv singhal');

$client = new \Predis\Client();

//$client->lpush('email','ucerturohit@gmail.com');


//$u=$client->blpop('emailnew',0);

//var_dump($u);

        $product=new Product();
        $product->setName('rohit');
        $product->setPass('rohit');

        $form=$this->createFormBuilder($product)
        ->add('name','text')
        ->add('pass','password')
        ->getForm();
    $z=notification_on_signup($x);

        if($z)
               $name='success';
        else
               $name='failed';

    return $this->render('EnsNewBundle:Email:ind.html.twig',
    array('form'=>$form->createView(),'name'=>'rohit'));


}

}

ここで notification_on_signup 関数は、メールを送信する別の関数で定義されています。送信ボタンをクリックすると、同じ関数が再度呼び出されます。私が望むのは、フォームを送信すると、フォームが最初に来て、電子メール機能notification_on_signupがバックグラウンドで実行されることです。redis を使用して関数をバックグラウンドで送信するにはどうすればよいですか。助けてください

4

1 に答える 1

0

あなたの質問を正しく理解できれば、これは redis とは何の関係もないと思います。代わりに、 gearmanなどの Job Server を使用する必要があります。

于 2014-01-22T13:05:19.387 に答える