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 ' #mail.send_mail(subject, plain_message, from_email, to_emails, html_message=html_message)