Exemple #1
0
int main(void){
    gearman_worker_st worker;
	
	//Create the worker
	gearman_worker_create(&worker);
    
	//Connect the worker to the server and chech it worked
    gearman_return_t ret= gearman_worker_add_server(&worker, "localhost", 4730);
    if (gearman_failed(ret)){
        return EXIT_FAILURE;
    }
	
	//register function, (worker, job_queue_name, timeout, function_to_do_work, context)
    ret = gearman_worker_add_function(&worker,"image",0,doing_work,NULL);
	if(gearman_failed(ret)){
		return EXIT_FAILURE;
	}
	
	//Infinite loop to keep watching
    while(1){
		//Does the work
        ret = gearman_worker_work(&worker);
        if ( ret != GEARMAN_SUCCESS ) {
            fprintf(stderr,"worker error: %s\n", gearman_worker_error( &worker ) );
            gearman_job_free_all( &worker );
            gearman_worker_free( &worker );
            /* sleep on error to avoid cpu intensive infinite loops */
            sleep(5);
        }
    }
    return EXIT_SUCCESS;
}
int main() {
	gearman_return_t ret;
	gearman_worker_st *worker = gearman_worker_create(NULL);
	gearman_worker_add_server(worker,"127.0.0.1",0);

	gearman_worker_add_function(worker,"syncToRedis",30, syncToRedis, NULL);
	gearman_worker_add_function(worker,"sync_UserInfo",30, sync_UserInfo, NULL);
	gearman_worker_add_function(worker,"sync_UserAndDeviceRelationShip",30, sync_UserAndDeviceRelationShip, NULL);

	while(1) {
		ret = gearman_worker_work(worker);
		if (ret != GEARMAN_SUCCESS) {
			printf("%s\n", gearman_worker_error(worker));
			break;
		}
	}
}
Exemple #3
0
/* register function on worker */
int worker_add_function( gearman_worker_st * worker, char * queue, gearman_worker_fn *function) {
    gearman_return_t ret;
    ret = gearman_worker_add_function( worker, queue, 0, function, NULL );
    if ( ret != GEARMAN_SUCCESS ) {
        gm_log( GM_LOG_ERROR, "worker error: %s\n", gearman_worker_error( worker ) );
        return GM_ERROR;
    }

    return GM_OK;
}
int main() {

	gearman_worker_st worker;
	gearman_worker_create(&worker);
	gearman_worker_add_server(&worker, "localhost", 0);

	gearman_worker_add_function(&worker, "parser", 0, do_parse, NULL);

	while (1) {
		gearman_worker_work(&worker);
	}

}
int main(int argc, char *argv[])
{
  gearman_benchmark_st benchmark;
  int c;
  char *host= NULL;
  in_port_t port= 0;
  char *function= NULL;
  uint32_t count= 0;
  gearman_return_t ret;
  gearman_worker_st worker;

  benchmark_init(&benchmark);

  if (gearman_worker_create(&worker) == NULL)
  {
    fprintf(stderr, "Memory allocation failure on worker creation\n");
    exit(1);
  }

  while ((c = getopt(argc, argv, "c:f:h:p:v")) != -1)
  {
    switch(c)
    {
    case 'c':
      count= (uint32_t)atoi(optarg);
      break;

    case 'f':
      function= optarg;
      ret= gearman_worker_add_function(&worker, function, 0, worker_fn,
                                       &benchmark);
      if (ret != GEARMAN_SUCCESS)
      {
        fprintf(stderr, "%s\n", gearman_worker_error(&worker));
        exit(1);
      }
      break;

    case 'h':
      host= optarg;
      ret= gearman_worker_add_server(&worker, host, port);
      if (ret != GEARMAN_SUCCESS)
      {
        fprintf(stderr, "%s\n", gearman_worker_error(&worker));
        exit(1);
      }
      break;

    case 'p':
      port= (in_port_t)atoi(optarg);
      break;

    case 'v':
      benchmark.verbose++;
      break;

    default:
      usage(argv[0]);
      exit(1);
    }
  }

  if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)
  {
    fprintf(stderr, "signal:%d\n", errno);
    exit(1);
  }

  if (host == NULL)
  {
    ret= gearman_worker_add_server(&worker, NULL, port);
    if (ret != GEARMAN_SUCCESS)
    {
      fprintf(stderr, "%s\n", gearman_worker_error(&worker));
      exit(1);
    }
  }

  if (function == NULL)
  {
    ret= gearman_worker_add_function(&worker,
                                     GEARMAN_BENCHMARK_DEFAULT_FUNCTION, 0,
                                     worker_fn, &benchmark);
    if (ret != GEARMAN_SUCCESS)
    {
      fprintf(stderr, "%s\n", gearman_worker_error(&worker));
      exit(1);
    }
  }

  while (1)
  {
    ret= gearman_worker_work(&worker);
    if (ret != GEARMAN_SUCCESS)
    {
      fprintf(stderr, "%s\n", gearman_worker_error(&worker));
      break;
    }

    if (count > 0)
    {
      count--;
      if (count == 0)
        break;
    }
  }

  gearman_worker_free(&worker);

  return 0;
}