redis.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from operator import itemgetter
  2. import asyncio
  3. from random import randint
  4. @asyncio.coroutine
  5. def get_random_record(container):
  6. idx = randint(1, 10000)
  7. random_number = yield from container.engines['redis'].get('world:%i' % idx)
  8. return {'Id': idx, 'RandomNumber': random_number}
  9. @asyncio.coroutine
  10. def get_random_records(container, limit):
  11. results = []
  12. for i in range(limit):
  13. idx = randint(1, 10000)
  14. random_number = yield from container.engines['redis'].get('world:%i' % idx)
  15. results.append({'Id': idx, 'RandomNumber': random_number})
  16. return results
  17. @asyncio.coroutine
  18. def update_random_records(container, limit):
  19. results = []
  20. for i in range(limit):
  21. idx = randint(1, 10000)
  22. random_number = yield from container.engines['redis'].get('world:%i' % idx)
  23. yield from container.engines['redis'].set('world:%i' % idx, str(randint(1, 10000)))
  24. results.append({'Id': idx, 'RandomNumber': random_number})
  25. return results
  26. @asyncio.coroutine
  27. def get_fortunes(container):
  28. results = []
  29. list_reply = yield from container.engines['redis'].lrange('fortunes')
  30. fortunes = yield from list_reply.aslist()
  31. i = 1
  32. for fortune in fortunes:
  33. results.append({'id': i, 'message': fortune})
  34. i += 1
  35. results.append({'id': 0, 'message': 'Additional fortune added at request time.'})
  36. results.sort(key=itemgetter('message'))
  37. return results