virtual void* run() { bool ret; acl::disque cmd; int max_conns = 1000; cmd.set_cluster(&cluster_, max_conns); for (int i = 0; i < n_; i++) { if (cmd_ == "addjob") ret = test_addjob(cmd, cond_, i); else if (cmd_ == "getjob") ret = test_getjob(cmd, i); else if (cmd_ == "qlen") ret = test_qlen(cmd, i); else if (cmd_ == "qpeek") ret = test_qpeek(cmd, i); else { printf("unknown cmd: %s\r\n", cmd_.c_str()); break; } if (ret == false) break; } return NULL; }
virtual void* run() { bool ret; acl::disque_client_pool* pool; acl::disque_client* conn; acl::disque cmd; for (int i = 0; i < n_; i++) { pool = (acl::disque_client_pool*) manager_.peek(); if (pool == NULL) { printf("peek connection pool failed\r\n"); break; } conn = (acl::disque_client*) pool->peek(); if (conn == NULL) { printf("peek disque_client failed\r\n"); break; } cmd.set_client(conn); if (cmd_ == "addjob") ret = test_addjob(cmd, cond_, i); else if (cmd_ == "getjob") ret = test_getjob(cmd, i); else if (cmd_ == "qlen") ret = test_qlen(cmd, i); else if (cmd_ == "qpeek") ret = test_qpeek(cmd, i); else { printf("unknown cmd: %s\r\n", cmd_.c_str()); break; } pool->put(conn, ret); if (ret == false) break; } return NULL; }
virtual void* run() { bool ret; acl::disque cmd; int max_conns = 1000, i; cmd.set_cluster(&cluster_, max_conns); struct timeval begin; gettimeofday(&begin, NULL); for (i = 0; i < n_;) { if (cmd_ == "addjob") ret = test_addjob(cmd, cond_, i); else if (cmd_ == "getjob") ret = test_getjob(cmd, n_, i, m_); else if (cmd_ == "qlen") ret = test_qlen(cmd, i); else if (cmd_ == "qpeek") ret = test_qpeek(cmd, i); else { printf("unknown cmd: %s\r\n", cmd_.c_str()); break; } if (ret == false || i >= n_) break; i++; if (i % 1000 == 0) { char tmp[128]; acl::safe_snprintf(tmp, sizeof(tmp), "%d", i); acl::meter_time(__FILE__, __LINE__, tmp); } } struct timeval end; gettimeofday(&end, NULL); double spent = util::stamp_sub(&end, &begin); printf(">>>total: %d, curr: %d, spent: %.2f, speed: %.2f\r\n", i, i, spent, i * 1000 / (spent > 0 ? spent : 1)); return NULL; }