RedisQueuePlugin.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. // This file is part of GNU social - https://www.gnu.org/software/social
  3. //
  4. // GNU social is free software: you can redistribute it and/or modify
  5. // it under the terms of the GNU Affero General Public License as published by
  6. // the Free Software Foundation, either version 3 of the License, or
  7. // (at your option) any later version.
  8. //
  9. // GNU social is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU Affero General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU Affero General Public License
  15. // along with GNU social. If not, see <http://www.gnu.org/licenses/>.
  16. /**
  17. * Redis interface for GNU social queues
  18. *
  19. * @package GNUsocial
  20. * @author Miguel Dantas <biodantasgs@gmail.com>
  21. * @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
  22. * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
  23. */
  24. defined('GNUSOCIAL') || die();
  25. class RedisQueuePlugin extends Plugin
  26. {
  27. const PLUGIN_VERSION = '0.0.1';
  28. // settings which can be set in config.php with addPlugin('RedisQueue', ['param'=>'value', ...]);
  29. public $server = null;
  30. public function onStartNewQueueManager(?QueueManager &$qm)
  31. {
  32. $qm = new RedisQueueManager($this->server);
  33. return false;
  34. }
  35. public function onPluginVersion(array &$versions): bool
  36. {
  37. $versions[] = array('name' => 'RedisQueue',
  38. 'version' => self::PLUGIN_VERSION,
  39. 'author' => 'Miguel Dantas',
  40. 'description' =>
  41. // TRANS: Plugin description.
  42. _m('Plugin implementing Redis as a backend for GNU social queues'));
  43. return true;
  44. }
  45. };