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' )
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)
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)
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
def __shutdown(self): beanstalkClient = BeanstalkClient() jsonEncoder = JSONEncoder() args = {'timestamp' : time.time()} pid = beanstalkClient.call("shutdown", jsonEncoder.encode(args), priority=0) #high pri job
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)
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)