Skip to content

Commit 0665a5b

Browse files
committed
fix db update error
1 parent 1b12a50 commit 0665a5b

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

frameworks/C++/paozhu/paozhu_benchmark/controller/src/techempower.cpp

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,12 @@ asio::awaitable<std::string> techempowerdb(std::shared_ptr<httppeer> peer)
4242
unsigned int rd_num = rand_range(1, 10000);
4343
myworld.where("id", rd_num);
4444
myworld.limit(1);
45-
co_await myworld.async_fetch_one();
45+
std::size_t n = co_await myworld.async_fetch_one();
46+
if (n == 0)
47+
{
48+
n = co_await myworld.async_fetch_one();
49+
}
50+
4651
peer->output = myworld.data_tojson();
4752
co_return "";
4853
}
@@ -69,7 +74,11 @@ asio::awaitable<std::string> techempowerqueries(std::shared_ptr<httppeer> peer)
6974
myworld.wheresql.clear();
7075
unsigned int rd_num = rand_range(1, 10000);
7176
myworld.where("id", rd_num);
72-
co_await myworld.async_fetch_append();
77+
std::size_t n = co_await myworld.async_fetch_append();
78+
if (n == 0)
79+
{
80+
n = co_await myworld.async_fetch_append();
81+
}
7382
}
7483

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

8594
auto myfortune = orm::Fortune();
86-
co_await myfortune.async_fetch();
95+
std::size_t n = co_await myfortune.async_fetch();
96+
if (n == 0)
97+
{
98+
n = co_await myfortune.async_fetch();
99+
}
100+
87101
myfortune.data.id = 0;
88102
myfortune.data.message = "Additional fortune added at request time.";
89103
myfortune.record.push_back(myfortune.data);
@@ -130,13 +144,22 @@ asio::awaitable<std::string> techempowerupdates(std::shared_ptr<httppeer> peer)
130144
{
131145
myworld.wheresql.clear();
132146
myworld.where("id", rand_range(1, 10000));
133-
co_await myworld.async_fetch_append();
147+
std::size_t n = co_await myworld.async_fetch_append();
148+
if (n == 0)
149+
{
150+
n = co_await myworld.async_fetch_append();
151+
}
134152
if (myworld.effect() > 0)
135153
{
136154
unsigned int j = myworld.record.size() - 1;
137155
myworld.data.randomnumber = rand_range(1, 10000);
138156
myworld.record[j].randomnumber = myworld.data.randomnumber;
139-
co_await myworld.async_update("randomnumber");
157+
158+
n = co_await myworld.async_update("randomnumber");
159+
if (n == 0)
160+
{
161+
n = co_await myworld.async_update("randomnumber");
162+
}
140163
}
141164
}
142165
peer->output = myworld.to_json();

0 commit comments

Comments
 (0)