{"id":1991,"date":"2021-07-27T16:53:39","date_gmt":"2021-07-27T13:53:39","guid":{"rendered":""},"modified":"2025-03-06T22:02:29","modified_gmt":"2025-03-06T19:02:29","slug":"configuring-asynchronous-task-execution-via-rq","status":"publish","type":"docs","link":"https:\/\/microimpuls.com\/en\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq","title":{"rendered":"Configure asynchronous task execution via RQ (Redis Queue)"},"content":{"rendered":"<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Note: Not available for Redis Cluster.<\/p>\n<\/blockquote>\n\n\n\n<p>Some processes in Smarty during synchronous execution can cause an avalanche load on the CPU, thereby provoking emergency situations and a long system response.<\/p>\n\n\n\n<p>For example, if you change an active channel through the Smarty or Content API administration panel, all active accounts that access this channel are notified of the need to update the channel list by displaying the appropriate flag, which is automatically requested when the next account status check is made. This action can provoke a large load wave, and as a result, freeze and even complete system failure.<\/p>\n\n\n\n<p>To eliminate this effect, a new RQ module was added to Smarty, which allows you to queue incoming tasks and distribute the load that occurs during their execution by time.<\/p>\n\n\n\n<p>When the RQ mechanism is enabled, flag display from the situation described above will occur on the low priority task queue. This will prevent the panel interface from hanging <meta charset=\"utf-8\">administration, as well as adjusting the rate of flag display to prevent increased load on the server due to the mass updating of channels by customers (flag speed is regulated by the option) <code><a href=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/smarty-config#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F-tv-%D0%B8-epg\" data-type=\"URL\" data-id=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/smarty-config#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F-tv-%D0%B8-epg\">TVMIDDLEWARE_CHANNEL_LIST_MAX_ACCOUNTS_PER_MINUTE<\/a><\/code>(a) the maximum operating time of RQ during this process \u2014 <a href=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/smarty-config#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F-tv-%D0%B8-epg\" data-type=\"URL\" data-id=\"https:\/\/micro.im\/docs\/smarty\/configuring-and-management\/smarty-config#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F-tv-%D0%B8-epg\">RQ_CHANNEL_LIST_CHANGED_JOB_TIMEOUT<\/a>).<\/p>\n\n\n\n<p><strong>Terms used<\/strong>:<\/p>\n\n\n\n<p><strong>Worker<\/strong> \u2014 a process that continually queues for new tasks and, if any, performs them. Usually there are several workmen and they work on the principle: who first got access to the queue, he performs the task.<\/p>\n\n\n\n<p><strong>Planner<\/strong> \u2014 a process that sets out tasks with a certain frequency <strong>worker<\/strong> in line. They can also be several, collisions between them are solved with the help of locks (the one who first takes possession of the lock flag sets the task).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Inclusion and configuration of RQ  <\/h4>\n\n\n\n<p>The operation of this mechanism is optional and is included in the parameter <code>SMARTY_USE_RQ<\/code> in the Smarty configuration file. <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Smarty_USE_RQ=True<\/code><\/pre>\n\n\n\n<p>In addition to the enabled option, a running service is required for the mechanism <code>smarty-rq<\/code>: <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl start smarty-rq@<\/code><\/pre>\n\n\n\n<p>where <code><\/code> \u2014 this is the name of the settings file from \/etc\/microimpuls\/smarty\/. <\/p>\n\n\n\n<p>To add the service to the autorun, the command is used:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl enable smarty-rq@<\/code><\/pre>\n\n\n\n<p>The queue uses a separate database in Redis. For the correct operation of the mechanism, it is necessary to provide access to this database from all instances of Smarty. In <code>RQ_QUEUES<\/code> three lines must be configured: <code>default<\/code>, <code>high<\/code> and <code>low<\/code>.<\/p>\n\n\n\n<p> The settings of the database used are in the parameter <code>RQ_QUEUES<\/code>. Example:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">RQ_QUEUES = {\n'default':\n'HOST': '10.0.1.2',\n'PORT': 6379,\n'DB': 10,\n'DEFAULT_TIMEOUT': 360,\n}\n'high':\n'HOST': '10.0.1.2',\n'PORT': 6379,\n'DB': 10,\n'DEFAULT_TIMEOUT': 360,\n}\n'low':\n'HOST': '10.0.1.2',\n'PORT': 6379,\n'DB': 10,\n'DEFAULT_TIMEOUT': 3600,\n}\n}<code> <\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Viewing the status of the queue<\/h4>\n\n\n\n<p>The command is used to check the status of the queue:<\/p>\n\n\n\n<pre id=\"block-687d75ef-3ca1-47dd-b81c-ce95858321bc\" class=\"wp-block-code\"><code><code>smarty_manage rqstats --settings=settings. <\/code><\/code><\/pre>\n\n\n\n<p id=\"block-000ae895-b6f1-442c-8eac-3e8174eb9588\">Example of team withdrawal:<\/p>\n\n\n\n<pre id=\"block-687d75ef-3ca1-47dd-b81c-ce95858321bc\" class=\"wp-block-preformatted\"><code> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n| Name \u00a0 \u00a0 \u00a0 \u00a0 |\u00a0 \u00a0 Queued |\u00a0 \u00a0 Active |\u00a0 Deferred |\u00a0 Finished | \u00a0 Workers |\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n| default\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00 |\u00a0\u00a0\u00a0 \u00a00 |\u00a0\u00a0\u00a0\u00a00 |\u00a0\u00a0\u00a0\u00a0\u00a00 |\u00a0 \u00a00 |\u00a0\u00a0 \u00a0 \u00a00 |\u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a00 |\u00a0 \u00a0 \u00a0\u00a01 |\u00a0\n| high \u00a0 \u00a0 \u00a0 \u00a0 | \u00a0 \u00a0 \u00a0 \u00a0 0 | \u00a0 \u00a0 \u00a0 0 | \u00a0 \u00a0 0 | \u00a0 \u00a0 \u00a0 0 | \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0 | \u00a0 \u00a0 \u00a0 0 | \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0 | \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\n| low\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 | \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 0 | \u00a0 \u00a0 \u00a0 \u00a0 0 | \u00a0 \u00a0 0 | \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 3 | \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<\/code><\/pre>\n\n\n\n<p><strong>Note:<\/strong> the value of 0 in the Workers column indicates that no workman is running at this turn. It is necessary to check the work of the service <code>smarty-rq<\/code> configuration <code>RQ_QUEUES<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Logistic of queue work<\/h4>\n\n\n\n<p>The RQ log file is in the file <code>\/var\/log\/microimpuls\/smarty\/smarty_rq.log<\/code>Next to the other log files. For each task logged:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>task name;<\/li>\n\n\n\n<li>its parameters;<\/li>\n\n\n\n<li>the result of its implementation (success\/failure).<\/li>\n<\/ul>","protected":false},"featured_media":0,"parent":857,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_links_to":"","_links_to_target":""},"doc_tag":[],"class_list":["post-1991","docs","type-docs","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0447\u0435\u0440\u0435\u0437 RQ (Redis Queue)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/microimpuls.com\/en\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0447\u0435\u0440\u0435\u0437 RQ (Redis Queue)\" \/>\n<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f Redis Cluster. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0432 Smarty \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043b\u0430\u0432\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 CPU, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0432\u043e\u0446\u0438\u0440\u0443\u044f \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0438 \u0434\u043e\u043b\u0433\u0438\u0439 \u043e\u0442\u043a\u043b\u0438\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043d\u0435\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Smarty \u0438\u043b\u0438 Content API \u0432\u0441\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b, \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u044e\u0442\u0441\u044f \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/microimpuls.com\/en\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq\/\" \/>\n<meta property=\"og:site_name\" content=\"Microimpuls\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-06T19:02:29+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq\",\"url\":\"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq\",\"name\":\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0447\u0435\u0440\u0435\u0437 RQ (Redis Queue)\",\"isPartOf\":{\"@id\":\"https:\/\/micro.im\/#website\"},\"datePublished\":\"2021-07-27T13:53:39+00:00\",\"dateModified\":\"2025-03-06T19:02:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\/\/micro.im\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Smarty\",\"item\":\"https:\/\/microimpuls.com\/docs\/smarty\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c\",\"item\":\"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0447\u0435\u0440\u0435\u0437 RQ (Redis Queue)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/micro.im\/#website\",\"url\":\"https:\/\/micro.im\/\",\"name\":\"Microimpuls\",\"description\":\"\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f OTT \u0438 IPTV\",\"publisher\":{\"@id\":\"https:\/\/micro.im\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/micro.im\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/micro.im\/#organization\",\"name\":\"Microimpuls\",\"url\":\"https:\/\/micro.im\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/micro.im\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/microimpuls.com\/wp-content\/uploads\/2024\/12\/mi-logo-square-en-black.png\",\"contentUrl\":\"https:\/\/microimpuls.com\/wp-content\/uploads\/2024\/12\/mi-logo-square-en-black.png\",\"width\":208,\"height\":219,\"caption\":\"Microimpuls\"},\"image\":{\"@id\":\"https:\/\/micro.im\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Configure asynchronous task execution via RQ (Redis Queue)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/microimpuls.com\/en\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq\/","og_locale":"en_US","og_type":"article","og_title":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0447\u0435\u0440\u0435\u0437 RQ (Redis Queue)","og_description":"\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f Redis Cluster. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0432 Smarty \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043b\u0430\u0432\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 CPU, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0432\u043e\u0446\u0438\u0440\u0443\u044f \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0438 \u0434\u043e\u043b\u0433\u0438\u0439 \u043e\u0442\u043a\u043b\u0438\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u043d\u0435\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Smarty \u0438\u043b\u0438 Content API \u0432\u0441\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b, \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u044e\u0442\u0441\u044f \u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 [&hellip;]","og_url":"https:\/\/microimpuls.com\/en\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq\/","og_site_name":"Microimpuls","article_modified_time":"2025-03-06T19:02:29+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq","url":"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq","name":"Configure asynchronous task execution via RQ (Redis Queue)","isPartOf":{"@id":"https:\/\/micro.im\/#website"},"datePublished":"2021-07-27T13:53:39+00:00","dateModified":"2025-03-06T19:02:29+00:00","breadcrumb":{"@id":"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy\/configuring-asynchronous-task-execution-via-rq#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/micro.im\/"},{"@type":"ListItem","position":2,"name":"Smarty","item":"https:\/\/microimpuls.com\/docs\/smarty"},{"@type":"ListItem","position":3,"name":"\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c","item":"https:\/\/microimpuls.com\/docs\/smarty\/scaling-and-redundancy"},{"@type":"ListItem","position":4,"name":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0447\u0435\u0440\u0435\u0437 RQ (Redis Queue)"}]},{"@type":"WebSite","@id":"https:\/\/micro.im\/#website","url":"https:\/\/micro.im\/","name":"Microimpulses","description":"Comprehensive solutions for OTT and IPTV","publisher":{"@id":"https:\/\/micro.im\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/micro.im\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/micro.im\/#organization","name":"Microimpulses","url":"https:\/\/micro.im\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/micro.im\/#\/schema\/logo\/image\/","url":"https:\/\/microimpuls.com\/wp-content\/uploads\/2024\/12\/mi-logo-square-en-black.png","contentUrl":"https:\/\/microimpuls.com\/wp-content\/uploads\/2024\/12\/mi-logo-square-en-black.png","width":208,"height":219,"caption":"Microimpuls"},"image":{"@id":"https:\/\/micro.im\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/1991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/comments?post=1991"}],"version-history":[{"count":22,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/1991\/revisions"}],"predecessor-version":[{"id":7268,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/1991\/revisions\/7268"}],"up":[{"embeddable":true,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/857"}],"prev":[{"title":"Configure Smarty Connection to SQL Cluster","link":"https:\/\/microimpuls.com\/en\/docs\/smarty\/scaling-and-redundancy\/smarty-sql-cluster-connection","href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/docs\/1312"}],"wp:attachment":[{"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/media?parent=1991"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/microimpuls.com\/en\/wp-json\/wp\/v2\/doc_tag?post=1991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}