evennia/docs/1.0-dev/api/evennia.scripts.taskhandler.html
2020-11-14 13:44:49 +01:00

199 lines
No EOL
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>evennia.scripts.taskhandler &#8212; Evennia 1.0-dev documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.scripts.taskhandler</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="module-evennia.scripts.taskhandler">
<span id="evennia-scripts-taskhandler"></span><h1>evennia.scripts.taskhandler<a class="headerlink" href="#module-evennia.scripts.taskhandler" title="Permalink to this headline"></a></h1>
<p>Module containing the task handler for Evennia deferred tasks, persistent or not.</p>
<dl class="py class">
<dt id="evennia.scripts.taskhandler.TaskHandler">
<em class="property">class </em><code class="sig-prename descclassname">evennia.scripts.taskhandler.</code><code class="sig-name descname">TaskHandler</code><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>A light singleton wrapper allowing to access permanent tasks.</p>
<p>When <strong>utils.delay</strong> is called, the task handler is used to create
the task. If <strong>utils.delay</strong> is called with <strong>persistent=True</strong>, the
task handler stores the new task and saves.</p>
<p>Its easier to access these tasks (should it be necessary) using
<strong>evennia.scripts.taskhandler.TASK_HANDLER</strong>, which contains one
instance of this class, and use its <strong>add</strong> and <strong>remove</strong> methods.</p>
<dl class="py method">
<dt id="evennia.scripts.taskhandler.TaskHandler.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.scripts.taskhandler.TaskHandler.load">
<code class="sig-name descname">load</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.load" title="Permalink to this definition"></a></dt>
<dd><p>Load from the ServerConfig.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This should be automatically called when Evennia starts.
It populates <strong>self.tasks</strong> according to the ServerConfig.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="evennia.scripts.taskhandler.TaskHandler.save">
<code class="sig-name descname">save</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.save"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.save" title="Permalink to this definition"></a></dt>
<dd><p>Save the tasks in ServerConfig.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.scripts.taskhandler.TaskHandler.add">
<code class="sig-name descname">add</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">timedelay</span></em>, <em class="sig-param"><span class="n">callback</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.add"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.add" title="Permalink to this definition"></a></dt>
<dd><p>Add a new persistent task in the configuration.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>timedelay</strong> (<em>int</em><em> or </em><em>float</em>) time in sedconds before calling the callback.</p></li>
<li><p><strong>callback</strong> (<em>function</em><em> or </em><em>instance method</em>) the callback itself</p></li>
<li><p><strong>any</strong> (<em>any</em>) any additional positional arguments to send to the callback</p></li>
</ul>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) persist the task (store it).</p></li>
<li><p><strong>any</strong> (<em>any</em>) additional keyword arguments to send to the callback</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.scripts.taskhandler.TaskHandler.remove">
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task_id</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.remove" title="Permalink to this definition"></a></dt>
<dd><p>Remove a persistent task without executing it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>task_id</strong> (<em>int</em>) an existing task ID.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>A non-persistent task doesnt have a task_id, it is not stored
in the TaskHandler.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="evennia.scripts.taskhandler.TaskHandler.do_task">
<code class="sig-name descname">do_task</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">task_id</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.do_task"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.do_task" title="Permalink to this definition"></a></dt>
<dd><p>Execute the task (call its callback).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>task_id</strong> (<em>int</em>) a valid task ID.</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This will also remove it from the list of current tasks.</p>
</div>
</dd></dl>
<dl class="py method">
<dt id="evennia.scripts.taskhandler.TaskHandler.create_delays">
<code class="sig-name descname">create_delays</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/taskhandler.html#TaskHandler.create_delays"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.taskhandler.TaskHandler.create_delays" title="Permalink to this definition"></a></dt>
<dd><p>Create the delayed tasks for the persistent tasks.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This method should be automatically called when Evennia starts.</p>
</div>
</dd></dl>
</dd></dl>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.scripts.taskhandler.rst.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div>
<h3>Versions</h3>
<ul>
<li><a href="evennia.scripts.taskhandler.html">1.0-dev (develop branch)</a></li>
<li><a href="../../0.9.5/api/evennia.scripts.taskhandler.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.scripts.taskhandler</a></li>
</ul>
<div class="develop">develop branch</div>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>