craymend / rentals-united-caching
Rentals United (rentalsunited.com) 的 Laravel 数据同步系统
This package is auto-updated.
Last update: 2024-09-06 13:47:12 UTC
README
同步 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)。有关更多信息,请参阅 许可文件。