Пример #1
0
 def put(self, request, format=None):
     serializer = SnippetSerializer(snippet, data=request.data)
     if serializer.is_valid():
         serializer.save(owner=request.user)
         client = BeanstalkClient()
         client.call('api.evaluate')
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    def handle(self, *args, **options):
        client = BeanstalkClient()

        print "Asynchronous Beanstalk Call"
        print "-------------------------"
        print "Notice how this app exits, while the workers still work on the tasks."
        for i in range(4):
            client.call('beanstalk_example.background_counting', '5')
    def handle_noargs(self, **options):
        client = BeanstalkClient()

        print "Asynchronous Beanstalk Call"
        print "-------------------------"
        print "Notice how this app exits, while the workers still work on the tasks."
        for i in range(4):
            client.call(
                'beanstalk_example.background_counting', '5'
            )
Пример #4
0
    def post(self, request, format=None):
        if request.user.snippets.all().count() > 0:
            return Response(
                'User already has a submitted code snippet. Use PUT to update',
                status=status.HTTP_400_BAD_REQUEST)

        serializer = SnippetSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save(owner=request.user)
            client = BeanstalkClient()
            client.call('api.evaluate')
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #5
0
    def put(self, request, format=None):
        try:
            snippet = request.user.snippets.first()
        except User.DoesNotExist:
            return Response(
                'User has no code snippet submitted. Use POST to submit',
                status=status.HTTP_400_BAD_REQUEST)

        serializer = SnippetSerializer(snippet, data=request.data)
        if serializer.is_valid():
            serializer.save(owner=request.user)
            client = BeanstalkClient()
            client.call('api.evaluate')
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #6
0
def get_for_user(username):
	try:
		user = UserProfile.objects.get(lfmusername=username)
		client = BeanstalkClient()
		response = get_page(username=username)
		info = response['artists']['@attr']
		handle_resp(user,response)
		for page in range(2,int(info.get('totalPages'))+1):
			job_data = {'uname':username,'page':page}
			client.call('rb.processpage',json.dumps(job_data))
		user.processed = datetime.datetime.now()
		user.save()
	except Exception, e:
		if settings.DEBUG:
			raise
		f=open(settings.LOG_DIRECTORY+"getforuser","a")
		f.write(str(e)+'\n')
		f.close()
def get_for_user(username):
    try:
        user = UserProfile.objects.get(lfmusername=username)
        client = BeanstalkClient()
        response = get_page(username=username)
        info = response['artists']['@attr']
        handle_resp(user, response)
        for page in range(2, int(info.get('totalPages')) + 1):
            job_data = {'uname': username, 'page': page}
            client.call('rb.processpage', json.dumps(job_data))
        user.processed = datetime.datetime.now()
        user.save()
    except Exception, e:
        if settings.DEBUG:
            raise
        f = open(settings.LOG_DIRECTORY + "getforuser", "a")
        f.write(str(e) + '\n')
        f.close()
 def _rescheduleReadiedJobs(self, tube):
     logger = logging.getLogger('beanstalk_worker.work')
     logger.info("Rescheduling all jobs in tubes that starts with: " + tube)
     pageSize = 50
     pageNumber = 1
     while True :
         start = ( pageNumber - 1 ) * pageSize
         end = pageNumber * pageSize 
         jobs = JobRecord.objects.filter(status=JobStatus.READY, tube__istartswith=tube)[start:end]
         if not jobs or len(jobs) == 0 :
             break
         
         for job in jobs :
             try :
                 #simply just creates a new beanstalk job, workers will never run a job
                 #again if it has already been finished successfully.
                 beanstalkClient = BeanstalkClient()
                 newJID = beanstalkClient.call(job.tube, job.body)
                 job.jid = newJID
                 job.save()
             except Exception, ex :
                 logger.exception("Failed to schedule the new job: " + str(ex))
         
         pageNumber += 1
Пример #9
0
 def __shutdown(self):
     beanstalkClient = BeanstalkClient()
     jsonEncoder = JSONEncoder()
     args = {'timestamp' : time.time()}
     pid = beanstalkClient.call("shutdown", jsonEncoder.encode(args), priority=0) #high pri job
Пример #10
0
            image = Image(url=track.get('image')[0].get('#text'))
            image.save()
    
        if image is not None:
            t.image = image
            
    except ObjectDoesNotExist:
        t = Track(name=track.get('name'))
        t.url = track.get('url')
        t.mbid = track.get('mbid')
        t.duration = track.get('duration') and int(track.get('duration')) or 0
        t.artist = get_or_create_artist(track.get('artist').get('name'))
        
        job_data = {'track_name':track.get('name'),
                    'artist_name':track.get('artist').get('name')}
        CLIENT.call('lfm.get_track_info', json.dumps(job_data))
            
        if not week:
            t.tag_count = int(track.get('tagcount'))

        t.save()
        
    #TODO: add a MoreThanOneObjectReturned except clause here

    relation_type = week and UserTrackWeek or UserTrack

    try:
        relation = relation_type.objects.get(user_profile=user, track=t)
    except ObjectDoesNotExist:
        relation = relation_type(user_profile=user, track=t)
        
Пример #11
0
        if image is not None:
            t.image = image

    except ObjectDoesNotExist:
        t = Track(name=track.get('name'))
        t.url = track.get('url')
        t.mbid = track.get('mbid')
        t.duration = track.get('duration') and int(track.get('duration')) or 0
        t.artist = get_or_create_artist(track.get('artist').get('name'))

        job_data = {
            'track_name': track.get('name'),
            'artist_name': track.get('artist').get('name')
        }
        CLIENT.call('lfm.get_track_info', json.dumps(job_data))

        if not week:
            t.tag_count = int(track.get('tagcount'))

        t.save()

    #TODO: add a MoreThanOneObjectReturned except clause here

    relation_type = week and UserTrackWeek or UserTrack

    try:
        relation = relation_type.objects.get(user_profile=user, track=t)
    except ObjectDoesNotExist:
        relation = relation_type(user_profile=user, track=t)