2017-02-25 3 views
0

J'essaie d'exécuter une tâche en PHP en utilisant gearman j'ai créé 2 scripts: Client.phpPHP Erreur de connexion gearman

<? 
$mail = array(
    'to' => '[email protected]', 
    'subject' => Hi', 
    'body' => 'Test message', 
); 


# Connect to Gearman server 
$client = new GearmanClient(); 
$client->addServer('127.0.0.1', '4730'); 


# Send message 
$client->doBackground('sendmail', json_encode($mail)); 

worker.php

<?php 
$worker = new GearmanWorker(); 
$worker->addServer(); 

$worker->addFunction('sendmail', 'send_mail'); 

while (1) 
{ 
    $worker->work(); 
    if ($worker->returnCode() != GEARMAN_SUCCESS) break; 
} 

function send_mail($job) 
{ 
    $workload = $job->workload(); 
    $data = json_decode($workload, true); 

    mail($data['to'], $data['subject'], $data['body']); 
} 

quand je lance mon travailleur de COMAND ligne: php worker.php &

et exécuter mon fichier client.php je reçois l'erreur suivante:

GearmanClient :: doBackground(): send_packet (GEARMAN_COULD_NOT_CONNECT) Echec d'envoi de paquets options_serveur -> libgearman/connection.cc: 485

Toute aide s'il vous plaît?

Merci

+0

Je définirais explicitement le serveur du côté de l'ouvrier également. '$ worker-> addServer ('127.0.0.1', '4730');'. –

+0

Votre serveur Gearman fonctionne-t-il? vérifier avec 'ps awux | grep gearmand' –

+0

Je reçois ceci lors de l'exécution de votre commande: root 4515 0.0 0.0 103308 880 pts/0 S + 05:49 0:00 grep gearmand –

Répondre

0

Essayez de changer ceci:

$client->addServer('127.0.0.1', '4730');

à

$client->addServer();

Si toujours pas de travail, essayez de jeter un oeil à la page get started de ce tutorial sur php. Cela a fonctionné bien pour moi