gearman with postgresql as persistent Queuing

gearman is a good thing

 

gearman client --------------> gearman server <------------------------gearman worker

 

clients are requesting to handler something, 

gearman server is delivering jobs

gearman workers get some jobs and finish.

 

So different programming languages can work together.

 

Now we need to plant gearman persistent queues on postgresql.

So.

Now

Persistent Queue

  • Tools: gearman, postgresql, python, django model and other 3rd party libs
  • bash sudo pip install gearman && sudo apt-get install gearman -y
  • Database settings: [username] = gearman, [password] = ‘gearman_password_123‘, [database] = ‘chatservice‘, [port]=5432, [table_name] = queue123
  • sudo su - postgres
    # Then, 
    psql
    # Then
    CREATE DATABASE gearman;
    CREATE USER gearman with password gearman_password_123;
    GRANT ALL PRIVILEGES ON DATABASE gearman to gearman;

     

    On a server:

There are two ways to make gearman work with Postgresql server

FIRST WAY

  • Postgresql

To get Postgresql working you need to use the -q Postgeres command line option.

Below is a command line to get persistent queues working with Postgresql. This command line was run on Ubuntu 12.04 server, Postgresql version 9.1, and Gearman v 0.27.

gearmand -L 127.0.0.1 –libpq-conninfo hostaddr=127.0.0.1 port=5432 dbname=gearman user=gearman password=gearman_password_123 –libpq-table=gearmanqueue1 –verbose DEBUG -q Postgres

 

  • Also note: gearmand will create the table if it does not already exist. In the case above, it will create a table named gearmanqueue1
  • You can see /var/log/gearman-job-server/gearman.log for log if error or somehow.

SECOND WAY

  • Edit the file /etc/default/gearman_job_server and make sure it would look like this:
export PGHOST=127.0.0.1
export PGPORT=5432
export PGUSER=gearman
export PGPASSWORD=gearman_password_123
export PGDATABASE=gearman
PARAMS="-q Postgres --libpq-table=gearmanqueue1 --verbose DEBUG"

 

  • Then try to start the service bash sudo service gearman-job-server start, gearman will auto-matically create a table ‘gearmanqueue1‘ there.

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。