Tôi muốn giải quyết tình trạng 405 mà tôi nhận được từ các hàng đợi công việc khi cố gắng để tạo ra một báo cáo:Status 405 từ hàng đợi nhiệm vụ
2012-02-16 03:56:53.012 /report/ 405 3ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
2012-02-16 03:56:53.007 /createreport/ 302 20ms 0kb Mozilla/5.0 (X11; Linux x86_64; rv:2.0) Gecko/20100101 Firefox/4.0
I 2012-02-16 03:56:52.990 creating report task
Các mã tạo nhiệm vụ là
class CreateReportHandler(webapp2.RequestHandler):
def get(self):
logging.info('creating report task')
taskqueue.add(url=r'/report/')
self.redirect('/')
và tôi có nó chuyển với webapp2:
Route(r'/createreport/', handler=CreateReportHandler, name='createreport'),
sau đó tôi sẽ có thể làm cho nó một công việc định kỳ nhưng khi tôi thử nghiệm nó tôi nhận được một 405 từ truy cập của mã này mà lần ra nếu tôi cố gắng để chạy nó trực tiếp:
class Report(webapp2.RequestHandler):
def get(self):
# Create a conversion request from HTML to PDF.
users = User.query()
today = date.today()
startdate = date(today.year, today.month, 1) # first day of month
html = None
for user in users:
if user.activity() > 0:
logging.info('found active user %s %s' % (user.firstname, user.lastname))
html = '<html><body><table border="1">'
html = html + '<tr><td>ORDER</td><td colspan="2">----DISTRIBUTOR----</td><td>ORDER</td><td>Silver</td><td>%</td><td>Total</td><td>Bonus</td></tr>'
level = user.level()
distributor = user
while distributor.has_downline():
downline = User.query(User.sponsor == distributor.key).order(User.lastname).fetch()
for person in downline: # to this for whole downline
orders = model.Order.all().filter('distributor_id =' , person.key.id()).filter('created >' , startdate).filter('status =', 'PAID').fetch(999999)
silver = 0
name = person.firstname +' '+ person.lastname
for order in orders:
logging.info('found orders')
for idx,item in enumerate(order.items):
purchase = model.Item.get_by_id(long(item.id()))
amount = int(order.amounts[idx])
silver = silver + amount*purchase.silver/1000.000
if len(name) > 13:
name = name[13]
html = html + '<tr><td>' + str(order.created.date().day)+'/'+ str(order.created.date().month)+'</td><td>' + filters.makeid(person.key.id()) +'</td><td>' + name + '</td><td>' + str(order.key().id()) + '</td><td>' + str(silver)
dist_level = order.dist_level
bonus = 0
if level == 5 and dist_level == 4:
bonus = 0.05
if level == 5 and dist_level == 3:
bonus = 0.1
if level == 5 and dist_level == 2:
bonus = 0.13
if level == 5 and dist_level == 1:
bonus = 0.35
if level == 4 and dist_level == 3:
bonus = 0.05
if level == 4 and dist_level == 2:
bonus = 0.08
if level == 4 and dist_level == 1:
bonus = 0.3
if level == 3 and dist_level == 2:
bonus = 0.03
if level == 3 and dist_level == 1:
bonus = 0.25
if level == 2 and dist_level == 1:
bonus = 0.2
html = html + '</td><td>' + str(bonus) + '</td><td>' + str(order.total)
bonusmoney = bonus * float(order.total)
html = html + '</td><td>' + str(bonusmoney) + '</td></tr>'
distributor = person
html = html + '</table>'
asset = conversion.Asset("text/html", html, "test.html")
conversion_obj = conversion.Conversion(asset, "application/pdf")
rpc = conversion.create_rpc()
conversion.make_convert_call(rpc, conversion_obj)
result = rpc.get_result()
if result.assets:
for asset in result.assets:
logging.info('emailing report')# to %s' % user.email)
message = mail.EmailMessage(sender='[email protected]',
subject='Report %s %s' % (user.firstname, user.lastname))
message.body = 'Here is the monthly report'
message.to = '[email protected]'
message.bcc = '[email protected]'
message.attachments = ['report.pdf', asset.data]
message.send()
logging.info('message sent')
Làm thế nào tôi có thể giải quyết tình trạng 405 và thực hiện thông qua thực hiện?
Cảm ơn bạn
Cảm ơn, tôi phát hiện ra điều này cũng giống như vậy đối với tôi - nó đã tạo một http 'POST' thay vì một 'GET' –