Skip to content

Instantly share code, notes, and snippets.

@nnsnodnb
Created May 6, 2019 08:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nnsnodnb/375a0efc8ce532c3afa97fffe43b89aa to your computer and use it in GitHub Desktop.
Save nnsnodnb/375a0efc8ce532c3afa97fffe43b89aa to your computer and use it in GitHub Desktop.
import asyncio
class Sample(object):
def start(self, **kwargs):
loop = asyncio.get_event_loop()
return loop.run_until_complete(self.create_tasks(loop, **kwargs))
async def create_tasks(self, loop, **kwargs):
name = kwargs.get('name')
screen_name = kwargs.get('screen_name')
tasks = [
await loop.run_in_executor(None, self.run_task, i, name, screen_name) for i in range(5)
]
return await asyncio.gather(*tasks, return_exceptions=True)
async def run_task(self, i, name=None, screen_name=None):
print(i + 1, 'start')
await asyncio.sleep(i + 1)
if i == 2:
raise Exception()
print(i, name, screen_name)
print(i + 1, 'end\n')
return i * 10
sample = Sample()
param = {
'name': '小泉ひやかし',
'screen_name': 'nnsnodnb'
}
results = sample.start(**param)
print(results)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment