tx_news,操纵数据库,缓存问题

时间:2015-06-23 13:09:29

标签: caching typo3 typo3-6.2.x tx-news

我们使用tx_news 2.3.0(不是最新版本! - 现在无法更新..)并且有一个奇怪的错误,当设置Publish Date时不会发布新闻(或者更好,它会在之后发布它们。

作为一种解决方法,我创建了一个小脚本并使用cronjob运行它:

UPDATE `tx_news_domain_model_news` SET `datetime` = `starttime`, `starttime` = 0 WHERE `starttime` <>0 and `starttime` < UNIX_TIMESTAMP()

基本上它会设置Date & Time字段= Publish Date并清除Publish Date字段,如果它早于now。在我们启用了一些缓存之前,这种解决方法做得很好。

现在有一个问题,有时新发布的文章没有出现在新闻列表视图插件的前端。在Flush frontend caches之后它就在那里。但有时它的工作没有清除缓存。有时,当不清除缓存时,文章会在几个小时后出现。

我不想为网站上的新闻列表视图插件禁用缓存。

那么处理这个问题的最佳方法是什么?有没有办法只清除tx_news插件的缓存?也许只对特定网站或新闻文件夹更好?也许直接通过数据库?

有什么想法吗?

编辑:如果我是对的,当您在新闻文章中更改某些内容时,应自动删除缓存。正如我通过数据库所做的那样,本文没有删除缓存。所以我测试了它,我运行脚本,看到文章发布,转到后端,打开本文之一并保存(没有任何更改),之后所有文章都是出版。 也许有办法模拟那个?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

当我直接操作数据库时,缓存系统不知道这种变化。因此,如果您在此更改后保存文章,则cachesystem将删除此站点的条目(仅适用于此站点)。 要强制缓存为此站点创建新的缓存项,我可以操作表cf_cache_pagesection并将expires字段设置为1(这意味着此缓存条目已过期。我使用以下SQl:

update `cf_cache_pagesection` set expires = 1 where identifier like '44_%'

(我要更改的页面获得了标识符中使用的uid 44)