Difference between revisions of "API:EPrints/DataObj/EventQueue"

From EPrints Documentation
Jump to: navigation, search
(Created page with '<!-- Pod2Wiki=_preamble_ This page has been automatically generated from the EPrints 3.2 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' com…')
 
Line 1: Line 1:
 
<!-- Pod2Wiki=_preamble_  
 
<!-- Pod2Wiki=_preamble_  
This page has been automatically generated from the EPrints 3.2 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' comments will be lost.
+
This page has been automatically generated from the EPrints 3.4 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' comments will be lost.
  -->{{API}}{{Pod2Wiki}}{{API:Source|file=perl_lib/EPrints/DataObj/EventQueue.pm|package_name=EPrints::DataObj::EventQueue}}[[Category:API|EVENTQUEUE]][[Category:API:EPrints/DataObj|EVENTQUEUE]][[Category:API:EPrints/DataObj/EventQueue|EVENTQUEUE]]<div><!-- Edit below this comment -->
+
  -->{{API}}{{Pod2Wiki}}{{API:Source|file=EPrints/DataObj/EventQueue.pm|package_name=EPrints::DataObj::EventQueue}}[[Category:API|EVENTQUEUE]][[Category:API:EPrints/DataObj|EVENTQUEUE]]<div><!-- Edit below this comment -->
  
  
 
<!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name -->
 
<!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name -->
 
==NAME==
 
==NAME==
EPrints::DataObj::EventQueue - scheduler/indexer event queue
+
'''EPrints::DataObj::EventQueue''' - scheduler/indexer event queue
  
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
 
<!-- Pod2Wiki= -->
 
<!-- Pod2Wiki= -->
<!-- Pod2Wiki=head_fields -->
+
</div>
==FIELDS==
+
<!-- Pod2Wiki=head_core_metadata_fields -->
* eventqueueid
+
==CORE METADATA FIELDS==
: Either a UUID or a hash of the event (if created with [[API:EPrints/DataObj/EventQueue#create_unique|create_unique]]).
+
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_eventqueueid -->
 +
===eventqueueid (uuid)===
 +
 
 +
Either a UUID or a hash of the event (if created with [[API:EPrints/DataObj/EventQueue#create_unique|create_unique]]).
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_cleanup -->
 +
===cleanup (boolean)===
 +
 
 +
If set to <tt>true</tt> removes this event once it has finished. Defaults to  <tt>true</tt>.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_priority -->
 +
===priority (int)===
 +
 
 +
The priority for this event.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_start_time -->
 +
===start_time (time)===
 +
 
 +
The event should not be executed before this time.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_end_time -->
 +
===end_time (time)===
 +
 
 +
The event was last touched at this time.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_status -->
 +
===status (set)===
 +
 
 +
The status of this event. Can be <tt>waiting</tt>, <tt>inprogress</tt>, <tt>success</tt> or <tt>failed</tt>. Defaults to <tt>failed</tt>.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_description -->
 +
===description (longtext)===
 +
 
 +
A human-readable description of this event (or error).
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
* cleanup
 
: If set to true removes this event once it has finished. Defaults to true.
 
  
* priority
+
<!-- Pod2Wiki= -->
: The priority for this event.
+
</div>
 +
<!-- Pod2Wiki=item_pluginid -->
 +
===pluginid (id)===
  
* start_time
+
The [[API:EPrints/Plugin/Event|EPrints::Plugin::Event]] plugin id to call to execute this event.
: The event should not be executed before this time.
 
  
* end_time
+
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
: The event was last touched at this time.
+
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
* status
 
: The status of this event.
 
  
* userid
+
<!-- Pod2Wiki= -->
: The user (if any) that was responsible for creating this event.
+
</div>
 +
<!-- Pod2Wiki=item_action -->
 +
===action (id)===
  
* description
+
The name of the action to execute on the plugin (i.e. method name).
: A human-readable description of this event (or error).
 
  
* pluginid
+
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
: The [[API:EPrints/Plugin/Event|EPrints::Plugin::Event]] plugin id to call to execute this event.
+
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
* action
 
: The name of the action to execute on the plugin (i.e. method name).
 
  
* params
+
<!-- Pod2Wiki= -->
: Parameters to pass to the action (a text serialisation).
+
</div>
 +
<!-- Pod2Wiki=item_params -->
 +
===params (storable)===
  
 +
Parameters to pass to the action (a text serialisation).
 +
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
 
<!-- Pod2Wiki= -->
 
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=head_references_and_related_objects -->
 +
==REFERENCES AND RELATED OBJECTS==
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 +
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_userid -->
 +
===userid (itemref)===
 +
 +
The user (if any) that was responsible for creating this event.
 +
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 +
 +
<!-- Pod2Wiki= -->
 +
</div>
 
<!-- Pod2Wiki=head_methods -->
 
<!-- Pod2Wiki=head_methods -->
 
==METHODS==
 
==METHODS==
<!-- Pod2Wiki=head_create_unique -->
+
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
===create_unique===
+
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
<source lang="perl">$event = EPrints::DataObj::EventQueue->create_unique( $repo, $data [, $dataset ] )
 
  
</source>
+
<!-- Pod2Wiki= -->
Creates a unique event by setting the <code>eventqueueid</code> to a hash of the <code>pluginid</code>, <code>action</code> and (if given) <code>params</code>.
+
</div>
 +
<!-- Pod2Wiki=item_get_system_field_info -->
 +
===get_system_field_info===
  
Returns undef if such an event already exists.
+
$metadata = EPrints::DataObj::EPrint-&gt;get_system_field_info
 +
Return an array describing the system metadata of the event queue  dataset.
  
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
 
<!-- Pod2Wiki= -->
 
<!-- Pod2Wiki= -->
<!-- Pod2Wiki=head_execute -->
+
</div>
===execute===
+
<!-- Pod2Wiki=item_get_dataset_id -->
 +
===get_dataset_id===
 +
 
 +
$dataset = EPrints::DataObj::EPrint-&gt;get_dataset_id
 +
Returns the ID of the [[API:EPrints/DataSet|EPrints::DataSet]] object to which this record belongs.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
  
<source lang="perl">$ok = $event->execute()
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_create_unique -->
 +
===create_unique===
  
</source>
+
$event = EPrints::DataObj::EventQueue-&gt;create_unique( $session, $data, [ $dataset ] )
Execute the action this event describes.
+
Returns a unique event queue task using the <tt>$data</tt> provided. Setting  the <tt>eventqueueid</tt> to a MD5 hash of the <tt>pluginid</tt>, <tt>action</tt> and  (if given) <tt>params</tt>.
  
The return from the [[API:EPrints/Plugin/Event|EPrints::Plugin::Event]] plugin action is treated as:
+
Returns <tt>undef</tt> if such an event already exists.
  
<pre> undef - equivalent to HTTP_OK
+
If <tt>$dataset</tt> is not provided generate from dataset ID of the class.
  HTTP_OK - action succeeded, event is removed if cleanup is TRUE
 
  HTTP_RESET_CONTENT - action succeeded, event is set 'waiting'
 
  HTTP_NOT_FOUND - action failed, event is removed if cleanup is TRUE
 
  HTTP_LOCKED - action failed, event is re-scheduled for 10 minutes time
 
  HTTP_INTERNAL_SERVER_ERROR - action failed, event is 'failed' and kept</pre>
 
  
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
 
<!-- Pod2Wiki= -->
 
<!-- Pod2Wiki= -->
<!-- Pod2Wiki=head_message -->
+
</div>
===message===
+
<!-- Pod2Wiki=item_new_from_hash -->
 +
===new_from_hash===
  
<source lang="perl">$event->message( $type, $xhtml )
+
$event = EPrints::DataObj::EventQueue-&gt;new_from_hash( $session, $data, [ $dataset ] )
 +
Returns the event that corresponds to the MD5 hash of the <tt>$data</tt>  provided, (<tt>pluginid</tt>, <tt>action</tt> and <tt>params</tt>).  Returns <tt>undef</tt> if no event queue task exists with a matching MD5 hash.
  
</source>
+
If <tt>$dataset</tt> is not provided generate from dataset ID of the class.
Utility method to log a message for this event.
 
  
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
 
<!-- Pod2Wiki= -->
 
<!-- Pod2Wiki= -->
<!-- Pod2Wiki=head_copyright -->
+
</div>
==COPYRIGHT==
+
<!-- Pod2Wiki=item_execute -->
: Copyright 2000-2011 University of Southampton.
+
===execute===
 +
 
 +
$ok = $event-&gt;execute()
 +
Execute the action this event queue task describes.
 +
 
 +
The response from the [[API:EPrints/Plugin/Event|EPrints::Plugin::Event]] plugin action is  treated as follows:
 +
 
 +
undef - equivalent to HTTP_OK
 +
HTTP_OK - action succeeded, event is removed if cleanup is TRUE
 +
HTTP_RESET_CONTENT - action succeeded, event is set 'waiting'
 +
HTTP_NOT_FOUND - action failed, event is removed if cleanup is TRUE
 +
HTTP_LOCKED - action failed, event is re-scheduled for 10 minutes time
 +
HTTP_INTERNAL_SERVER_ERROR - action failed, event is 'failed' and kept
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
: This file is part of EPrints http://www.eprints.org/.
 
  
: EPrints is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_message -->
 +
===message===
  
: EPrints is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+
$event-&gt;message( $type, $message )
 +
Utility method to log the <tt>$message</tt> for this event.
  
: You should have received a copy of the GNU Lesser General Public License along with EPrints.  If not, see http://www.gnu.org/licenses/.
+
<tt>$type</tt> is required by this method but not currently used.
  
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
 
<!-- Pod2Wiki= -->
 
<!-- Pod2Wiki= -->
<!-- Pod2Wiki=_postamble_ -->
+
</div>
 +
<!-- Pod2Wiki=head_copyright -->
 +
==COPYRIGHT==
 +
{{API:Copyright}}
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
 +
 +
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=_postamble_ --><!-- Edit below this comment -->

Revision as of 23:34, 28 December 2021

EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects


API: Core API

Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki


NAME

EPrints::DataObj::EventQueue - scheduler/indexer event queue

User Comments


CORE METADATA FIELDS

User Comments


eventqueueid (uuid)

Either a UUID or a hash of the event (if created with create_unique).

User Comments


cleanup (boolean)

If set to true removes this event once it has finished. Defaults to true.

User Comments


priority (int)

The priority for this event.

User Comments


start_time (time)

The event should not be executed before this time.

User Comments


end_time (time)

The event was last touched at this time.

User Comments


status (set)

The status of this event. Can be waiting, inprogress, success or failed. Defaults to failed.

User Comments


description (longtext)

A human-readable description of this event (or error).

User Comments


pluginid (id)

The EPrints::Plugin::Event plugin id to call to execute this event.

User Comments


action (id)

The name of the action to execute on the plugin (i.e. method name).

User Comments


params (storable)

Parameters to pass to the action (a text serialisation).

User Comments


REFERENCES AND RELATED OBJECTS

User Comments


userid (itemref)

The user (if any) that was responsible for creating this event.

User Comments


METHODS

User Comments


get_system_field_info

$metadata = EPrints::DataObj::EPrint->get_system_field_info

Return an array describing the system metadata of the event queue dataset.

User Comments


get_dataset_id

$dataset = EPrints::DataObj::EPrint->get_dataset_id

Returns the ID of the EPrints::DataSet object to which this record belongs.

User Comments


create_unique

$event = EPrints::DataObj::EventQueue->create_unique( $session, $data, [ $dataset ] )

Returns a unique event queue task using the $data provided. Setting the eventqueueid to a MD5 hash of the pluginid, action and (if given) params.

Returns undef if such an event already exists.

If $dataset is not provided generate from dataset ID of the class.

User Comments


new_from_hash

$event = EPrints::DataObj::EventQueue->new_from_hash( $session, $data, [ $dataset ] )

Returns the event that corresponds to the MD5 hash of the $data provided, (pluginid, action and params). Returns undef if no event queue task exists with a matching MD5 hash.

If $dataset is not provided generate from dataset ID of the class.

User Comments


execute

$ok = $event->execute()

Execute the action this event queue task describes.

The response from the EPrints::Plugin::Event plugin action is treated as follows:

undef - equivalent to HTTP_OK
HTTP_OK - action succeeded, event is removed if cleanup is TRUE
HTTP_RESET_CONTENT - action succeeded, event is set 'waiting'
HTTP_NOT_FOUND - action failed, event is removed if cleanup is TRUE
HTTP_LOCKED - action failed, event is re-scheduled for 10 minutes time
HTTP_INTERNAL_SERVER_ERROR - action failed, event is 'failed' and kept
 

User Comments


message

$event->message( $type, $message )

Utility method to log the $message for this event.

$type is required by this method but not currently used.

User Comments


COPYRIGHT

© Copyright 2022 University of Southampton.

EPrints 3.4 is supplied by EPrints Services.

http://www.eprints.org/eprints-3.4/

LICENSE

This file is part of EPrints 3.4 http://www.eprints.org/.

EPrints 3.4 and this file are released under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation unless otherwise stated.

EPrints 3.4 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with EPrints 3.4. If not, see http://www.gnu.org/licenses/.

User Comments