<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:17:32 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-2010] Alternative Scheduling Approaches</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2010</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;&lt;b&gt;Context&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Following the conversations on 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-1953&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-1953&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;SPIKE: propose an approach for scheduling tasks in Okapi&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            FOLIO-1953
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 and the 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;OKAPI-730&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/OKAPI-730&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;system call timer&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium&quot; /&gt;
            OKAPI-730
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 there have been some reservations raised about this approach.&lt;/p&gt;

&lt;p&gt;It could be useful to discuss those reservations and any alternative proposals (like use of the vert.x periodic API) to decide if we want to invest in those as well.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Scheduling Needs&lt;/b&gt; (taken from 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-1953&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-1953&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;SPIKE: propose an approach for scheduling tasks in Okapi&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            FOLIO-1953
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
)&lt;/p&gt;

&lt;p&gt;I believe any alternative approach needs to also fulfil the needs described to frame the current Okapi development.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Initial Requirements&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;All tasks &lt;sup&gt;1&lt;/sup&gt; are defined when a module is enabled for a tenant&lt;/li&gt;
	&lt;li&gt;A task can be granted permissions which allow it to make requests to other modules&lt;/li&gt;
	&lt;li&gt;Each execution of a task happens on only one module instance&lt;/li&gt;
	&lt;li&gt;A task can be scheduled to execute at an interval chosen by the module&lt;/li&gt;
	&lt;li&gt;Smallest execution interval can be 1 minute (no need for seconds precision, in practice this is likely to be  5 minutes or more)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;These closely mimic the current scheduling implementation in RAML Module Builder. The main differences are that it is tenant aware (rather than running as soon as the module is deployed) and limited to running on only a single instance.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Possible Future Extensions&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Schedule can be more complicated than only an interval between executions&lt;/li&gt;
	&lt;li&gt;A module can register new scheduled tasks (e.g. could register a specific task for expiry of a single request if we wanted)&lt;/li&gt;
	&lt;li&gt;Scheduled task can be run once (or a defined number of times)&lt;/li&gt;
	&lt;li&gt;A module can remove scheduled tasks (may need to consider ownership of tasks)&lt;/li&gt;
	&lt;li&gt;A module can change the schedule for a task&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;1) I&apos;ve used the term task to be consistent with other parts of this issue&lt;/p&gt;</description>
                <environment></environment>
        <key id="81232">FOLIO-2010</key>
            <summary>Alternative Scheduling Approaches</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Won&apos;t Do</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="63e2a2771b13d42998e4e706">Marc Johnson</reporter>
                                    <labels>
                            <label>potential-decision</label>
                    </labels>
                <created>Fri, 10 May 2019 13:21:39 +0000</created>
                <updated>Wed, 25 Jan 2023 14:39:56 +0000</updated>
                            <resolved>Wed, 25 Jan 2023 14:39:56 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>13</watches>
                                                                    <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="47964">CIRC-300</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81188">FOLIO-1953</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="54072">OKAPI-730</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10144"><![CDATA[Core: Platform]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzzp9b:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>