def loop(self): while True: t = helper.get_now() for work in self.workers.values(): try: worker = work['worker'] worker_obj = work['worker_obj'] # d = work['time'] - t d = t - work['time'] if d.seconds >= worker.interval: work['time'] = helper.get_now() worker_obj.create_tasks() tasks = WorkerTask.objects.filter( worker=worker, status='scheduled', scheduled__lte=t) worker_obj.runtasks(tasks) except Exception, e: if 'worker' in work: worker = work['worker'] logging.error("Error while doing " + worker.name) else: logging.error("Error while doing work, worker object is misisng") logging.critical(e) traceback.print_exc() time.sleep(self.heartbeat)
def loop(self): while True: t = helper.get_now() for work in self.workers.values(): try: worker = work['worker'] worker_obj = work['worker_obj'] # d = work['time'] - t d = t - work['time'] if d.seconds >= worker.interval: work['time'] = helper.get_now() worker_obj.create_tasks() tasks = WorkerTask.objects.filter(worker=worker, status='scheduled', scheduled__lte=t) worker_obj.runtasks(tasks) except Exception, e: if 'worker' in work: worker = work['worker'] logging.error("Error while doing " + worker.name) else: logging.error( "Error while doing work, worker object is misisng") logging.critical(e) traceback.print_exc() time.sleep(self.heartbeat)
def update_product_viewed_count(request, product): """ Stores viewed product information with system id and user id """ from adjod import globals system_id = request.COOKIES.get('csrftoken', csrf.get_token(request)) ip_number = globals.ip if product: if request.user.is_authenticated(): user = UserProfile.objects.get(id=request.user.id) try: statisticfilter = ProductStatistic.objects.get(product=product,user=user) except: statisticfilter = None else: user = None try: statisticfilter = ProductStatistic.objects.get(product=product,user=user,system_id=system_id) except: statisticfilter = None if statisticfilter is None: productviewed = ProductStatistic.objects.create( product=Product.objects.get(id=product), system_id=system_id, user=user, ip_number=ip_number, modified=helper.get_now() )
def create_tasks(self): print "create_tasks1" workertask=WorkerTask.objects.get(worker=self.worker) workertask.status='init' workertask.save() print "self.worker", self.worker.id tasks = WorkerTask.objects.filter(worker=self.worker, status='init') print "tasks", tasks for task in tasks: print "task.worker", task.worker # config = NoticeEmailConfig.objects.get(pk='default') if tasks.count(): print "Got tasks", tasks.count() for task in tasks: try: now = helper.get_now() if self.worker.wait_for_approval: now = now + timedelta(seconds = self.worker.wait_for_approval) task.scheduled = now task.status = 'scheduled' task.save() # logging.debug("scheduled Lead for notice email : " + ntask.product.title) except Exception, e: logging.critical(e) traceback.print_exc() task.status = 'failed' task.notes = "Error while creating task " + traceback.format_exc() task.save()
def create_tasks(self): print "create_tasks" now = helper.get_now() user=User() sitebanner=SiteBanner.objects.all() for sitebanners in sitebanner: user_id=sitebanners.user_id print user_id user=User.objects.get(id=user_id) print user email=user.email print email name=user.username print name result=sitebanners.enddate print "result", result if result: subject="Your " + " Your banner will be removed from today onwards" sitebanners.admin_status = False send_templated_mail( template_name = 'welcome', subject = "subject", from_email = '*****@*****.**', recipient_list = [email], context = {'name':name}, ) print "mail send" sitebanners.save()
def runtasks(self, tasks): print "runtasks1" postevent=Postevent.objects.all() for task in tasks: now = helper.get_now() task.status = 'started' task.started = now task.save() try: now = helper.get_now() yesterday = now - timedelta(seconds=5) # yesterday = now - timedelta(hours=24) print "task", task for postevents in postevent: user=str(postevents.name) postevent_id = str(postevents.id) print "user",user print "postevent_id", postevent_id result= postevents.enddate print "result", result if result: subject="Your " + str(postevents.event_title) + " Your event will be removed from today onwards" postevents.status_isactive = False print postevents.email # ctx={'user':user} send_templated_mail( template_name = 'welcome', subject = "subject", from_email = '*****@*****.**', recipient_list = [postevents.email], context = {'user':user}, ) print "mail sent successfully" task.status = 'completed' task.completed = helper.get_now() task.save() postevents.save() except Exception, e: logging.critical(e) traceback.print_exc() task.status = 'failed' task.notes = "Error while running task " + traceback.format_exc() task.save()
def create_tasks(self): print "create_tasks" now = helper.get_now() product=Product.objects.all() for products in product: user_id = str(products.userprofile.user_id) user=str(products.userprofile.user.username) product_id = str(products.id) cat=str(products.category.name) subcat=str(products.subcategory.name) brand=str(products.ad_brand.brand_name) title=str(products.title) print "cat",cat print subcat print brand print title print "user",user print "user_id", user_id print "product_id", product_id result=(products.expired_date - products.created_date).days print "result", result remaining_days = 30 - result if result >=25 and result < 30: subject="Your " + str(products.title) + " ads will be expired in " + repr(remaining_days) + " days" content="If u want 10 more days to be active your ads please click the link http://localhost:8000/expired_ad_conformation/?" +"user_id=" + user_id + "&ad_id=" + product_id + ", otherwise if you want to remove ads please click this link http://localhost:8000/expired_ad_conformation/?" +"user_id=" + user_id + "&ad_id=" + product_id con=content print "con",con elif result == 30: products.expired_date = products.expired_date + datetime.timedelta(days=10) subject="Your " + str(products.title) + " ads is expired" content="If u want 10 more days to be active your ads please click the link http://localhost:8000" con1=content print "con1" ,con1 elif result == 40: subject = "Your " + str(products.title) + " ads is expired after some extra period" content= "Hi...Your ad is going to be inactive, Click the blow link and Please make your ad as Premium http://localhost:8000" products.status_isactive = False print "subject", subject print "content", content # content= "Hi.... these products are matched for your given request.please refer our website. Thank you" # print content ctx={'cat':cat,'subcat':subcat ,'brand':brand,'title':title,'con':con,'user':user} # check(self,context) # return check(context) self.sendmail(title, content, products.you_email,ctx) products.save()
def process_request(self, request): # print "enter process_request" globals.request = request globals.user = getattr(request, 'user', None) globals.ip = get_client_ip(request) # print "globals.ip", globals.ip if ',' in globals.ip: globals.ip = globals.ip.split(',')[0].strip() globals.sess = request.session.session_key self.global_country,self.global_country_code=get_global_country(request) self.global_city, self.global_city_id=get_global_city(request) self.global_ip= globals.ip self.global_language=get_global_language(request) if request.user.is_authenticated(): try: request.user.last_login = helper.get_now() request.user.save() except Exception, e: pass
def process_request(self, request): globals.request = request globals.user = getattr(request, 'user', None) globals.ip = get_client_ip(request) if ',' in globals.ip: globals.ip = globals.ip.split(',')[0].strip() globals.sess = request.session.session_key self.global_country = "Singapore" self.global_country_code = "SG" self.global_city = "Singapore" self.global_city_id = "1" self.global_ip = globals.ip self.global_language = "en" if request.user.is_authenticated(): try: request.user.last_login = helper.get_now() request.user.save() except Exception, e: pass
def process_request(self, request): globals.request = request globals.user = getattr(request, 'user', None) globals.ip = get_client_ip(request) if ',' in globals.ip: globals.ip = globals.ip.split(',')[0].strip() globals.sess = request.session.session_key self.global_country = "Singapore" self.global_country_code = "SG" self.global_city="Singapore" self.global_city_id = "1" self.global_ip = globals.ip self.global_language= "en" if request.user.is_authenticated(): try: request.user.last_login = helper.get_now() request.user.save() except Exception, e: pass
def create_tasks(self): print "create_tasks" now = helper.get_now() product=Product.objects.all() for products in product: user_id = str(products.userprofile.user_ptr_id) user=str(products.userprofile.username) product_id = str(products.id) cat=str(products.category.name) subcat=str(products.subcategory.name) brand=str(products.ad_brand.brand_name) title=str(products.title) print "cat",cat print subcat print brand print title print "user",user print "user_id", user_id print "product_id", product_id result=(products.expired_date - products.created_date).days print "result", result remaining_days = 30 - result if result >=25 and result < 30: # subject="Your " + str(products.title) + " ads will be expired in " + repr(remaining_days) + " days" content="If u want 10 more days to be active your ads please click the link http://localhost:8000/expired_ad_conformation/?" +"user_id=" + user_id + "&ad_id=" + product_id + ", otherwise if you want to remove ads please click this link http://localhost:8000/expired_ad_conformation/?" +"user_id=" + user_id + "&ad_id=" + product_id con=content print "con",con elif result == 30: products.expired_date = products.expired_date + datetime.timedelta(days=10) # subject="Your " + str(products.title) + " ads is expired" content="If u want 10 more days to be active your ads please click the link http://localhost:8000" con1=content print "con1" ,con1 elif result == 40: # subject = "Your " + str(products.title) + " ads is expired after some extra period" content= "Hi...Your ad is going to be inactive, Click the blow link and Please make your ad as Premium http://localhost:8000" active_link = "http://" + settings.SITE_NAME + "/postad/" products.status_isactive = False ctx={'cat':cat,'subcat':subcat ,'brand':brand,'title':title,'user':user,'active_link':active_link} self.sendmail(title, products.you_email,ctx) products.save()
def process_request(self, request): # print "enter process_request" globals.request = request globals.user = getattr(request, 'user', None) globals.ip = get_client_ip(request) # print "globals.ip", globals.ip if ',' in globals.ip: globals.ip = globals.ip.split(',')[0].strip() globals.sess = request.session.session_key self.global_country, self.global_country_code = get_global_country( request) self.global_city, self.global_city_id = get_global_city(request) self.global_ip = globals.ip self.global_language = get_global_language(request) if request.user.is_authenticated(): try: request.user.last_login = helper.get_now() request.user.save() except Exception, e: pass
def start(self): logging.info("Starting worker") logging.debug("Started with debug: " + str(self.debug)) workers = Worker.objects.filter(active=True) for worker in workers: cls = helper.object_from_path(worker.cls_path, safe=True) if cls is None: logging.error("Class not found for "+ worker.name + ":" + worker.cls_path) continue self.workers[worker.id] = { 'time': helper.get_now(), 'next': worker.interval, 'worker_obj': cls(worker), 'worker': worker } self.loop()
def start(self): logging.info("Starting worker") logging.debug("Started with debug: " + str(self.debug)) workers = Worker.objects.filter(active=True) for worker in workers: cls = helper.object_from_path(worker.cls_path, safe=True) if cls is None: logging.error("Class not found for " + worker.name + ":" + worker.cls_path) continue self.workers[worker.id] = { 'time': helper.get_now(), 'next': worker.interval, 'worker_obj': cls(worker), 'worker': worker } self.loop()
def runtasks(self, tasks): print "runtasks1" freealert=FreeAlert.objects.all() for task in tasks: now = helper.get_now() task.status = 'started' task.started = now task.save() try: now = helper.get_now() yesterday = now - timedelta(seconds=5) # yesterday = now - timedelta(hours=24) print "task", task for freealerts in freealert: if freealerts.last_email_sent!= datetime.datetime.now().time(): # if freealerts.last_email_sent!= datetime.date.today(): alert_filter = Product.objects.filter(category=freealerts.alert_category, subcategory=freealerts.alert_subcategory,ad_brand=freealerts.alert_brand,city=freealerts.alert_city) product=[] for alert_filters in alert_filter: if UserTracking.objects.filter(track_alert=freealerts.id): print "enter if" usertrack= UserTracking.objects.get(track_alert=freealerts.id) usertrack.email_sent_count +=1 usertrack.last_email_sent=now usertrack.save() else: print "enter else" print "freealerts.id", freealerts.id usertracking=UserTracking() usertracking.track_alert=FreeAlert.objects.get(id=freealerts.id) usertracking.email_sent_count +=1 usertracking.last_email_sent=now usertracking.save() title = alert_filters.title content = "http://*****:*****@gmail.com', [freealerts.alert_email], fail_silently=False) # self.sendmail(title, content, freealerts.alert_email,ctx) send_templated_mail( template_name = 'alert', from_email = '*****@*****.**', recipient_list= [freealerts.alert_email], context = { 'subject': 'Alert Products', 'content':content, 'cate':cate, 'current_site':current_site, }, ) print "mail sent successfully" task.status = 'completed' task.completed = helper.get_now() task.save() product.append(smart_str(alert_filters.id)) print "product", product freealerts.mail_is_sent=True freealerts.last_email_sent=now freealerts.save() if WorkerNoticeEmailTask.objects.get(created_alert=freealerts.id): ntask=WorkerNoticeEmailTask.objects.get(created_alert=freealerts.id) else: ntask=WorkerNoticeEmailTask() ntask.task=task ntask.created_alert=FreeAlert.objects.get(id=freealerts.id) ntask.tracking_code=helper.randomkey(26) ntask.iteration_count+=1 ntask.mailissent = 1 ntask.last_email_sent=now ntask.save() ntask.product = product else: print "cron again occur as today's date" except Exception, e: logging.critical(e) traceback.print_exc() task.status = 'failed' task.notes = "Error while running task " + traceback.format_exc() task.save()
def runtasks(self, tasks): print "runtasks1" freealert=FreeAlert.objects.all() for task in tasks: now = helper.get_now() task.status = 'started' task.started = now task.save() try: now = helper.get_now() yesterday = now - timedelta(seconds=5) # yesterday = now - timedelta(hours=24) print "task", task for freealerts in freealert: if freealerts.last_email_sent!= datetime.datetime.now().time(): alert_id = Product.objects.all() alert_filter = Product.objects.filter(category_id=freealerts.alert_category_id, subcategory_id=freealerts.alert_subcategory_id,city_id=freealerts.alert_city_id,ad_brand_id=freealerts.alert_brand_id) product=[] for alert_filters in alert_filter: if UserTracking.objects.filter(track_alert=freealerts.id): print "enter if" usertrack= UserTracking.objects.get(track_alert=freealerts.id) usertrack.email_sent_count +=1 usertrack.last_email_sent=now usertrack.save() else: print "enter else" print "freealerts.id", freealerts.id usertracking=UserTracking() usertracking.track_alert=FreeAlert.objects.get(id=freealerts.id) usertracking.email_sent_count +=1 usertracking.last_email_sent=now usertracking.save() task.status = 'completed' task.completed = helper.get_now() task.save() print "alert_filter",alert_filter content = "http://" + settings.SITE_NAME + "/ads/" print content,"content" print freealerts.alert_email cate = freealerts.alert_category.name print "cate",cate current_site = Site.objects.get(id=1) user=str(freealerts.alert_user.username) print "user",user ctx={'cate':cate,'alert_filter':alert_filter, 'content':content ,'user':user} print freealerts.alert_email,"freealerts.alert_email" self.send_mail(content, freealerts.alert_email,ctx) freealerts.mail_is_sent=True freealerts.last_email_sent=now freealerts.save() if WorkerNoticeEmailTask.objects.get(created_alert=freealerts.id): ntask=WorkerNoticeEmailTask.objects.get(created_alert=freealerts.id) else: ntask=WorkerNoticeEmailTask() ntask.task=task ntask.created_alert=FreeAlert.objects.get(id=freealerts.id) ntask.tracking_code=helper.randomkey(26) ntask.iteration_count+=1 ntask.mailissent = 1 ntask.last_email_sent=now ntask.save() ntask.product = product else: print "cron again occur as today's date" except Exception, e: logging.critical(e) traceback.print_exc() task.status = 'failed' task.notes = "Error while running task " + traceback.format_exc() task.save()