diff --git a/api/tacticalrmm/agents/tasks.py b/api/tacticalrmm/agents/tasks.py index 8127e186..bc200028 100644 --- a/api/tacticalrmm/agents/tasks.py +++ b/api/tacticalrmm/agents/tasks.py @@ -133,6 +133,23 @@ def auto_self_agent_update_task() -> None: agent_update(pk) +@app.task +def get_wmi_task(): + agents = Agent.objects.all() + online = [ + i + for i in agents + if pyver.parse(i.version) >= pyver.parse("1.2.0") and i.status == "online" + ] + chunks = (online[i : i + 50] for i in range(0, len(online), 50)) + for chunk in chunks: + for agent in chunk: + asyncio.run(agent.nats_cmd({"func": "wmi"}, wait=False)) + sleep(0.1) + rand = random.randint(3, 7) + sleep(rand) + + @app.task def sync_sysinfo_task(): agents = Agent.objects.all() diff --git a/api/tacticalrmm/tacticalrmm/celery.py b/api/tacticalrmm/tacticalrmm/celery.py index 5c58ebcd..3c73c571 100644 --- a/api/tacticalrmm/tacticalrmm/celery.py +++ b/api/tacticalrmm/tacticalrmm/celery.py @@ -45,6 +45,10 @@ app.conf.beat_schedule = { "task": "agents.tasks.sync_sysinfo_task", "schedule": crontab(minute=55, hour="*"), }, + "get-wmi": { + "task": "agents.tasks.get_wmi_task", + "schedule": crontab(minute="*/18"), + }, "check-agentservice": { "task": "agents.tasks.monitor_agents_task", "schedule": crontab(minute="*/15"),