craymend/rentals-united-caching

Rentals United (rentalsunited.com) 的 Laravel 数据同步系统

1.1.2 2024-09-06 13:46 UTC

This package is auto-updated.

Last update: 2024-09-06 13:47:12 UTC


README

Software License

同步 Rentals United 数据到您的本地数据库。

安装

注意:如果您尚未为您的应用程序设置数据库,请首先按照 Laravel 文档进行操作 - https://laravel.net.cn/docs/5.5/database

通过 composer。

composer require craymend/rentals-united-caching

运行

artisan vendor:publish

后跟

artisan migrate

现在在您的 .env 文件中,定义您的 Rentals United 凭证和存储下载的 XML 文件(临时存储)的路径

RENTALS_UNITED_USERNAME=<your Rentals United username/email>
RENTALS_UNITED_PASSWORD=<your Rentals United password>
XML_CACHE_DIR='/path/to/cache/directory/'

使用示例

  • artisan rentals_united:cache_all

    • 初始化 RU 数据。截断所有表并缓存一切。
  • artisan rentals_united:cache_dictionaries

    • 截断所有字典表并缓存字典数据。
    • RU 文档建议“每月运行一次”。
  • artisan rentals_united:cache_properties --id=4,5

    • 根据 ID 需求缓存特定属性。
  • artisan rentals_united:cache_properties --id=new

    • 找到并缓存过去 2 小时内创建的所有属性
  • artisan rentals_united:update_change_log --since="-1 day"

    • 更新早于 'since' 给定的日期/时间的更改日志。
    • RU 文档建议“每天至少运行一次”。
  • artisan rentals_united:update_properties --since="-1 day"

    • 使用本地更改日志日期 'since' 给定的日期/时间更新属性数据。
    • RU 文档建议“每天至少运行一次”。
  • artisan rentals_united:cache_reservations --since="-20 minute"

    • 缓存具有 LastMod 在 'since' 给定的日期/时间窗口到当前时间的预约。不会截断任何现有预约。
    • RU 不允许窗口超过 7 天。
    • RU 文档建议“至少每 20 分钟运行一次”。
  • artisan rentals_united:cache_reservations --id=3,4

    • 根据 ID 需求缓存特定预约。

Laravel 调度器示例

Laravel 任务调度 使更新缓存数据变得容易。

示例

protected  function  schedule(Schedule  $schedule)
{
  $dayStr = date('Y-m-d');

  $schedule->command('rentals_united:update_reservations --since="-21 minute"')
    ->appendOutputTo(storage_path("logs/cron-{$dayStr}.log"))
    ->cron('*/20 * * * * *');

  $schedule->command('rentals_united:cache_dictionaries')
    ->appendOutputTo(storage_path("logs/cron-{$dayStr}.log"))
    ->monthlyOn(1, '00:00');
  
  $schedule->command('rentals_united:update_change_log')
    ->appendOutputTo(storage_path("logs/cron-{$dayStr}.log"))
    ->dailyAt('00:00');
  
  $schedule->command('rentals_united:update_properties --since="-25 hour"')
    ->appendOutputTo(storage_path("logs/cron-{$dayStr}.log"))
    ->dailyAt('00:00');
}

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件