mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-05 10:58:11 +08:00
基本废弃 AsyncTaskThread的代码
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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了
|
||||
|
||||
@@ -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了
|
||||
|
||||
Reference in New Issue
Block a user