async def put(self, data, *, pri=None, ttl=None, ttr=None, delay=None):
opts = {}<EOL>if pri is not None:<EOL><INDENT>opts['<STR_LIT>'] = pri<EOL><DEDENT>if ttl is not None:<EOL><INDENT>opts['<STR_LIT>'] = ttl<EOL><DEDENT>if ttr is not None:<EOL><INDENT>opts['<STR_LIT>'] = ttr<EOL><DEDENT>if delay is not None:<EOL><INDENT>opts['<STR_LIT>'] = delay<EOL><DEDENT>args = (data, opts)<EOL>res = await self.conn.call(self.__funcs['<STR_LIT>'], args)<EOL>return self._create_task(res.body)<EOL>
Puts data to the queue and returns a newly created Task

:param data: Arbitrary task payload
:param pri: Task priority (0 by default)
:param ttl: Task time-to-live
:param ttr: Task time-to-run
:param delay: Task delay
:return: Task instance