def agent_outages_task(): agents = Agent.objects.only("pk") for agent in agents: if agent.status == "overdue": outages = AgentOutage.objects.filter(agent=agent) if outages and outages.last().is_active: continue outage = AgentOutage(agent=agent) outage.save() if agent.overdue_email_alert and not agent.maintenance_mode: agent_outage_email_task.delay(pk=outage.pk) if agent.overdue_text_alert and not agent.maintenance_mode: agent_outage_sms_task.delay(pk=outage.pk)
def agent_outages_task(): agents = Agent.objects.only("pk", "last_seen", "overdue_time", "overdue_email_alert", "overdue_text_alert") for agent in agents: if agent.overdue_email_alert or agent.overdue_text_alert: if agent.status == "overdue": outages = AgentOutage.objects.filter(agent=agent) if outages and outages.last().is_active: continue outage = AgentOutage(agent=agent) outage.save() # add a null check history to allow gaps in graph for check in agent.agentchecks.all(): check.add_check_history(None) if agent.overdue_email_alert and not agent.maintenance_mode: agent_outage_email_task.delay(pk=outage.pk) if agent.overdue_text_alert and not agent.maintenance_mode: agent_outage_sms_task.delay(pk=outage.pk)