MCPcopy Create free account
hub / github.com/Botloader/botloader / run

Method run

components/scheduler/src/scheduler.rs:74–100  ·  view source on GitHub ↗
(mut self)

Source from the content-addressed store, hash-verified

72 }
73
74 pub async fn run(mut self) {
75 loop {
76 match self.next_action().await {
77 SchedulerAction::Cmd(Some(SchedulerCommand::Shutdown)) => {
78 break;
79 }
80 SchedulerAction::Cmd(Some(cmd)) => self.handle_scheduler_command(cmd).await,
81 // rpc server shut down, shut down scheduler aswell then
82 SchedulerAction::Cmd(None) => break,
83
84 SchedulerAction::GuildHandler(guild_id, None) => {
85 // worker finished, remove it
86 self.guilds.remove(&guild_id);
87
88 if self.try_unsuspend_guild(guild_id) {
89 self.check_queue_start_worker(guild_id).await;
90 }
91 }
92 SchedulerAction::GuildHandler(g, Some(evt)) => {
93 self.handle_guild_handler_event(g, evt)
94 }
95 }
96 }
97
98 self.shutdown_all();
99 self.wait_all_shutdown().await;
100 }
101
102 async fn wait_all_shutdown(&mut self) {
103 info!("shutdown pending guilds: {}", self.guilds.len());

Callers 2

runFunction · 0.45
run_migrationsMethod · 0.45

Calls 8

removeMethod · 0.80
try_unsuspend_guildMethod · 0.80
shutdown_allMethod · 0.80
wait_all_shutdownMethod · 0.80
next_actionMethod · 0.45

Tested by

no test coverage detected