基本废弃 AsyncTaskThread的代码

This commit is contained in:
xiongziliang
2019-01-30 18:11:00 +08:00
parent bf974d5b0c
commit 3f2137db8a
43 changed files with 25 additions and 4776 deletions

View File

@@ -58,8 +58,9 @@ int main(int argc, char *argv[]) {
list<MediaPlayer::Ptr> playerList;
auto playerCnt = atoi(argv[1]);//启动的播放器个数
atomic_int alivePlayerCnt(0);
//每隔若干毫秒启动一个播放器(如果一次性全部启动,服务器和客户端可能都承受不了)
AsyncTaskThread::Instance().DoTaskDelay(0, atoi(argv[2]), [&]() {
Timer timer0(atoi(argv[2])/1000.0f,[&]() {
MediaPlayer::Ptr player(new MediaPlayer());
player->setOnPlayResult([&](const SockException &ex) {
if (!ex) {
@@ -73,12 +74,13 @@ int main(int argc, char *argv[]) {
player->play(argv[3]);
playerList.push_back(player);
return playerCnt--;
});
}, nullptr);
AsyncTaskThread::Instance().DoTaskDelay(0, 1000, [&]() {
Timer timer1(1,[&]() {
InfoL << "存活播放器个数:" << alivePlayerCnt.load();
return true;
});
}, nullptr);
sem.wait();
return 0;

View File

@@ -66,18 +66,16 @@ void createPusher(const string &app, const string &stream, const string &url) {
pusher->publish(url.data());
}
Timer::Ptr g_timer;
//推流失败或断开延迟2秒后重试推流
void rePushDelay(const string &app, const string &stream, const string &url) {
//上次延时两秒的任务可能还没执行,所以我们要先取消上次任务
AsyncTaskThread::Instance().CancelTask(0);
//2秒后执行重新推流的任务
AsyncTaskThread::Instance().DoTaskDelay(0, 2000, [app, stream, url]() {
g_timer = std::make_shared<Timer>(2,[app, stream, url]() {
InfoL << "Re-Publishing...";
//重新推流
createPusher(app, stream, url);
//此任务不重复
return false;
});
}, nullptr);
}
//这里才是真正执行main函数你可以把函数名(domain)改成main然后就可以输入自定义url了

View File

@@ -75,18 +75,16 @@ void createPusher(const string &app,const string &stream,const string &url){
pusher->publish(url.data());
}
Timer::Ptr g_timer;
//推流失败或断开延迟2秒后重试推流
void rePushDelay(const string &app,const string &stream,const string &url){
//上次延时两秒的任务可能还没执行,所以我们要先取消上次任务
AsyncTaskThread::Instance().CancelTask(0);
//2秒后执行重新推流的任务
AsyncTaskThread::Instance().DoTaskDelay(0, 2000, [app, stream,url]() {
void rePushDelay(const string &app, const string &stream, const string &url) {
g_timer = std::make_shared<Timer>(2,[app, stream, url]() {
InfoL << "Re-Publishing...";
//重新推流
createPusher(app,stream,url);
createPusher(app, stream, url);
//此任务不重复
return false;
});
}, nullptr);
}
//这里才是真正执行main函数你可以把函数名(domain)改成main然后就可以输入自定义url了