Jump to content

Xperience.cloud - Gearman: Difference between revisions

From Parasol
No edit summary
Tag: visualeditor
No edit summary
Tag: visualeditor
Line 30: Line 30:
$client = new GearmanClient();
$client = new GearmanClient();
$client->addServer(getenv('GEARMAN_SERVER'));
$client->addServer(getenv('GEARMAN_SERVER'));
</syntaxhighlight>and sending your payload to it<syntaxhighlight lang="php5" line="1">
</syntaxhighlight>and sending your payload to it<syntaxhighlight>
$result = $client->doBackground('send_twilio_sms_or_voice', json_encode(array(
$result = $client->doBackground('send_twilio_sms_or_voice', json_encode(array(
"meta" => array( 'twilio_number_voice' => $phone_from_voice ), "data" => array( 'phone_to' => $telephone, 'phone_type' => 'voice', 'phone_body' => $phone_body )
"meta" => array( 'twilio_number_voice' => $phone_from_voice ), "data" => array( 'phone_to' => $telephone,  
'phone_body' => $phone_body
)
)));
)));
</syntaxhighlight><!-- Please mind, that Gearman workers do not give an execution result. -->
</syntaxhighlight>'''Please mind, that Gearman workers do not give an execution result.'''
 
Current Workers


===== Current Workers =====
There are two workers for
There are two workers for


Sending (RAW) Emails via Amazon AWS / SES (gearman/jobs/send_aws_ses.php)
* Sending (RAW) Emails via Amazon AWS / SES (gearman/jobs/send_aws_ses.php)
 
* Sending SMS and doing Voicecalls via Twilio (gearman/jobs/send_twilio_sms_or_voice.php)
Sending SMS and doing Voicecalls via Twilio (gearman/jobs/send_twilio_sms_or_voice.php)

Revision as of 10:39, 8 February 2021

The xperience.cloud runs a parallel worker execution service using http://gearman.org

Enviroment

Stage and Live-Servers are using separate Gearman instances.

Stage

The Stage Servers Gearman is configured as "GEARMAN_SERVER" in the .env file and is pointing to

GEARMAN_SERVER = ip-172-31-34-64.eu-central-1.compute.internal

what is the private DNS for the Stage-Server himself.

Prod

The Prod Servers Gearman is configured as "GEARMAN_SERVER" in the .env file and is pointing to

GEARMAN_SERVER = ip-172-31-27-199.eu-central-1.compute.internal

what is the service.xperience.cloud EC2 Instances private DNS.

Worker

Gearman Jobs are called "Worker". The workers are located in "/gearman/jobs/" and will be initialised by "gearman/worker.php".

New Worker Code / Restarting the Workers

To use new code, you have to restart the workers. You can restart the workers by just killing them using

sudo pkill -f worker.php

on the corresponding gearman machine.

Logging

The Gearman Worker's php code should log into the syslog ("/var/log/syslog"). The Gearman Job Server itself is logging into his own log at "/var/log/gearman-job-server/gearmand.log". To watch your Gearman Jobs running or debug them, you can use

sudo tail -f /var/log/syslog /var/log/php7.3-fpm.log /var/log/gearman-job-server/gearmand.log
Using

You can use the Gearman worker in your code by adding a new Client<syntaxhighlight lang="php5" line="1"> $client = new GearmanClient(); $client->addServer(getenv('GEARMAN_SERVER')); </syntaxhighlight>and sending your payload to it<syntaxhighlight> $result = $client->doBackground('send_twilio_sms_or_voice', json_encode(array( "meta" => array( 'twilio_number_voice' => $phone_from_voice ), "data" => array( 'phone_to' => $telephone, 'phone_body' => $phone_body ) ))); </syntaxhighlight>Please mind, that Gearman workers do not give an execution result.

Current Workers

There are two workers for

  • Sending (RAW) Emails via Amazon AWS / SES (gearman/jobs/send_aws_ses.php)
  • Sending SMS and doing Voicecalls via Twilio (gearman/jobs/send_twilio_sms_or_voice.php)