API:EPrints/Plugin/Event

From EPrints Documentation
Jump to: navigation, search

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::Plugin::Event


DESCRIPTION

Event plugins are called by the indexer to actually do work. EPrints::DataObj::EventQueue objects are stored in the database and executed once their start_time is due. The object contains the plugin ID, action and optionally parameters.

Action is the sub called on the plugin. This sub must return undef or a valid response constant recognised by EPrints::DataObj::EventQueue/execute.

Parameters can contain any Perl data structure that can be serialised by Storable. As a special case parameters that look like an internal id are re-instantiated as the referenced object before the plugin action is called.

Events also support scheduled (or repeating) events by calling cron on this class with the actual plugin id/action/parameters to call. The scheduled event isn't called directly but is triggered via a new event object with a start_time of now.


SYNOPSIS

EPrints::DataObj::EventQueue->create_unique( $repo, {
	pluginid => "Event::Hello",
	action => "hello",
	params => ["John Smith"],
});

EPrints::DataObj::EventQueue->create_unique( $repo, {
	pluginid => "Event",
	action => "cron",
	params => ["0,15,30,45 * * * *",
		"Event::Hello",
		"hello",
		"John Smith",
	],
});


COPYRIGHT

Copyright 2000-2011 University of Southampton.

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.

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.

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