示例#1
0
	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;
	}
示例#2
0
	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;
	}
示例#3
0
	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;
	}