如何处理大型ICS文件?

时间:2020-01-10 16:29:22

标签: icalendar rfc5545

我的应用程序(php / laravel,但此处无关紧要)为用户保存了日历条目(相当于汽车日志),并且一些用户希望将这些事件同步到他们选择的日历应用程序。我开始研究ics标准(RFC 5545等),并创建了一个生成这些文件的端点。

问题:文件越来越大。有些用户在应用程序中有成千上万个条目,拥有整个驾驶记录,生成和传输ICS文件的MB会花费很多时间(无论如何使用php),更不用说每次日历应用程序尝试同步时都要这样做。

问题:处理大型ICS文档的首选方法是什么? HTTP标头和缓存是一回事,但是其他人如何解决此问题?只是发送去年的事件?有没有我尚未找到的(分页?)规范?

1 个答案:

答案 0 :(得分:0)

这是历史数据,因此不会改变。您可以按时间段提供批次并缓存历史批次。例如,过去几年或过去4周之前的任何内容都不会更新。他们将每个历史批次一次性导入到单独的“行驶历史”日历中。不再订阅了吗?或者也许他们只能订阅上个月的内容?

一个人不能导入并订阅相同的日历,因此这确实意味着它们将至少具有2个日历-1个用于导入的历史日历,以及1个“当前”日历,这些日历将随着昨天的行程而更新。当然,如果任何人想要始终拥有旧数据,那么当事件不在“当前”日历上时,他们将必须手动导入最新的“旧”事件。