Exemple #1
0
  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)
Exemple #2
0
    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)
Exemple #3
0
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() 
Exemple #5
0
  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()
Exemple #6
0
	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()
Exemple #8
0
 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
Exemple #9
0
 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
Exemple #10
0
 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
Exemple #11
0
  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()
Exemple #12
0
 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
Exemple #13
0
  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()
Exemple #14
0
    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()
Exemple #16
0
  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()