srg/srglib/tasks.py
2024-04-26 12:43:00 +03:00

105 lines
3.2 KiB
Python

from __future__ import absolute_import, unicode_literals
from django.utils import timezone
from srglib.utils import load_erotrans_table, load_srg_data_dumps
from srglib.utils import mark_new_skymap_sources_in_latest, update_allsky_missed
from srglib.utils import load_skymap_sources_dir
from srglib.ztf import load_ztf_alerce
import pytz
from erotrans.models import EroTrans
from monthplan.utils import load_surveypath_data, load_monthplan_dir
import glob
from django.contrib.auth.models import User
from django.core import mail
from django.template.loader import render_to_string
from django.utils.html import strip_tags
from django.core.mail import send_mail
from celery import shared_task
from srg.celery import app
import logging
@app.task
def load_monthplan_task():
load_monthplan_dir('/export/django/srg/data/npol/fits')
@app.task
def load_surveypath_task():
path = "/export/django/srg/data/npol/DMV/ARJ-SCAN/20??????_??????_???????????.iki"
logging.info("load SRG survey path {}".format(path))
ikifiles = []
for file in glob.glob(path):
ikifiles.append(file)
for file in ikifiles:
load_surveypath_data(file,100,notify=True)
@app.task
def load_srg_data_dumps_task():
dir='/srg/work/oper/staff/kate/skymap_v0'
load_srg_data_dumps(dir)
#load_skymap_sources_dir('/srg/work/oper/staff/kate/skymap/catalog')
#mark_new_skymap_sources_in_latest()
#update_allsky_missed()
@app.task
def load_skymap_sources_task():
load_skymap_sources_dir('/srg/work/oper/staff/kate/skymap/catalog')
#mark_new_skymap_sources_in_latest()
update_allsky_missed()
@app.task
def load_ztf_alerce_task():
logging.info("load ALeRCE ZTF alerts for last 2 days")
load_ztf_alerce(2)
@app.task
def load_ztf_alerts_task():
""" deprecated """
logging.warning("load_ztf_alerts_task")
load_ztf_alerts()
@app.task
def load_erosita_daily_source_list():
""" Loads eRosita daily source catalog
In /export/django/srg, use the following command to start celery.worker:
celery -A srg worker --pool=solo -l info --loglevel=DEBUG
Use the following command to start celery.beat:
celery -A srg beat
"""
users = User.objects.filter(groups__name='srg-erosita-transients')
to_emails=[]
for user in users:
to_emails.append(user.email)
pklfiles = []
for filename in glob.glob("/data/erosita/transients/srclist_*.pkl"):
pklfiles.append(file)
for filename in pklfiles:
res = load_erotrans_table(file)
if (res > 0):
try:
cat = EroTrans.objects.get(pk=res)
except:
logging.error("EroTrans with pk=%d not found", res)
continue
"""
Send email notification to group
"""
nomatch_count=cat.erotranssource_set.filter(heasarc=None).count()
subject = "New eRosita catalog %s" % cat.obsid
html_message = render_to_string('erotrans/erotrans_loaded_email.html', {'cat':cat,'nomatch_count':nomatch_count})
plain_message = strip_tags(html_message)
from_email = 'Roman Krivonos <krivonos@cosmos.ru>'
#mail.send_mail(subject, plain_message, from_email, to_emails, html_message=html_message)