Skip to content

Commit

Permalink
test async db query
Browse files Browse the repository at this point in the history
  • Loading branch information
hggq committed Jan 17, 2025
1 parent e89754b commit ed58e1c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 42 deletions.
33 changes: 5 additions & 28 deletions controller/src/techempower.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,7 @@ asio::awaitable<std::string> techempowerdb(std::shared_ptr<httppeer> peer)
unsigned int rd_num = rand_range(1, 10000);
myworld.where("id", rd_num);
myworld.limit(1);
std::size_t n = co_await myworld.async_fetch_one();
if (n == 0)
{
n = co_await myworld.async_fetch_one();
}

co_await myworld.async_fetch_one();
peer->output = myworld.data_tojson();
co_return "";
}
Expand All @@ -74,11 +69,7 @@ asio::awaitable<std::string> techempowerqueries(std::shared_ptr<httppeer> peer)
myworld.wheresql.clear();
unsigned int rd_num = rand_range(1, 10000);
myworld.where("id", rd_num);
std::size_t n = co_await myworld.async_fetch_append();
if (n == 0)
{
n = co_await myworld.async_fetch_append();
}
co_await myworld.async_fetch_append();
}

peer->output = myworld.to_json();
Expand All @@ -92,12 +83,7 @@ asio::awaitable<std::string> techempowerfortunes(std::shared_ptr<httppeer> peer)
peer->set_header("Date", get_gmttime());

auto myfortune = orm::Fortune();
std::size_t n = co_await myfortune.async_fetch();
if (n == 0)
{
n = co_await myfortune.async_fetch();
}

co_await myfortune.async_fetch();
myfortune.data.id = 0;
myfortune.data.message = "Additional fortune added at request time.";
myfortune.record.push_back(myfortune.data);
Expand Down Expand Up @@ -144,22 +130,13 @@ asio::awaitable<std::string> techempowerupdates(std::shared_ptr<httppeer> peer)
{
myworld.wheresql.clear();
myworld.where("id", rand_range(1, 10000));
std::size_t n = co_await myworld.async_fetch_append();
if (n == 0)
{
n = co_await myworld.async_fetch_append();
}
co_await myworld.async_fetch_append();
if (myworld.effect() > 0)
{
unsigned int j = myworld.record.size() - 1;
myworld.data.randomnumber = rand_range(1, 10000);
myworld.record[j].randomnumber = myworld.data.randomnumber;

n = co_await myworld.async_update("randomnumber");
if (n == 0)
{
n = co_await myworld.async_update("randomnumber");
}
co_await myworld.async_update("randomnumber");
}
}
peer->output = myworld.to_json();
Expand Down
28 changes: 14 additions & 14 deletions vendor/httpserver/include/mysqlorm.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2388,13 +2388,13 @@ class mysql_orm : public base
iserror = true;
co_return 0;
}
//auto conn = co_await conn_obj->async_get_select_conn();
auto conn = co_await conn_obj->async_add_select_connect();
auto conn = co_await conn_obj->async_get_select_conn();
//auto conn = co_await conn_obj->async_add_select_connect();
std::size_t n = co_await asio::async_write(*conn->socket, asio::buffer(querysql), asio::use_awaitable);
unsigned char result_data[4096];
std::memset(result_data, 0x00, 4096);

asio::error_code ec;
// asio::error_code ec;

// 就是查出原始表字段
pack_info_t temp_pack_data;
Expand Down Expand Up @@ -2480,7 +2480,7 @@ class mysql_orm : public base
}
}
}
//conn_obj->back_select_conn(conn);
conn_obj->back_select_conn(conn);

if (iscache)
{
Expand Down Expand Up @@ -2740,14 +2740,14 @@ class mysql_orm : public base
iserror = true;
co_return 0;
}
//auto conn = co_await conn_obj->async_get_select_conn();
auto conn = co_await conn_obj->async_add_select_connect();
auto conn = co_await conn_obj->async_get_select_conn();
//auto conn = co_await conn_obj->async_add_select_connect();

std::size_t n = co_await asio::async_write(*conn->socket, asio::buffer(querysql), asio::use_awaitable);
unsigned char result_data[4096];
std::memset(result_data, 0x00, 4096);

asio::error_code ec;
// asio::error_code ec;

// 就是查出原始表字段
pack_info_t temp_pack_data;
Expand Down Expand Up @@ -2833,7 +2833,7 @@ class mysql_orm : public base
}
}
}
//conn_obj->back_select_conn(conn);
conn_obj->back_select_conn(conn);

if (iscache)
{
Expand Down Expand Up @@ -3096,8 +3096,8 @@ class mysql_orm : public base
iserror = true;
co_return 0;
}
//auto conn = co_await conn_obj->async_get_select_conn();
auto conn = co_await conn_obj->async_add_select_connect();
auto conn = co_await conn_obj->async_get_select_conn();
//auto conn = co_await conn_obj->async_add_select_connect();

std::size_t n = co_await asio::async_write(*conn->socket, asio::buffer(querysql), asio::use_awaitable);
unsigned char result_data[4096];
Expand Down Expand Up @@ -3203,7 +3203,7 @@ class mysql_orm : public base
}
}

//conn_obj->back_select_conn(conn);
conn_obj->back_select_conn(conn);

if (iscache)
{
Expand Down Expand Up @@ -3844,8 +3844,8 @@ class mysql_orm : public base
iserror = true;
co_return 0;
}
//auto conn = co_await conn_obj->async_get_edit_conn();
auto conn = co_await conn_obj->async_add_edit_connect();
auto conn = co_await conn_obj->async_get_edit_conn();
//auto conn = co_await conn_obj->async_add_edit_connect();

std::size_t n = co_await asio::async_write(*conn->socket, asio::buffer(querysql), asio::use_awaitable);
unsigned char result_data[4096];
Expand All @@ -3854,7 +3854,7 @@ class mysql_orm : public base
asio::error_code ec;
unsigned int offset = 0;
n = co_await conn->socket->async_read_some(asio::buffer(result_data), asio::use_awaitable);
//conn_obj->back_edit_conn(conn);
conn_obj->back_edit_conn(conn);
if (ec)
{
error_msg = "read error !";
Expand Down

0 comments on commit ed58e1c

Please sign in to comment.