我们正在运行相当大的网站(每天大约40万页面浏览量),并使用Smarty作为模板引擎。HTML编码器每天都会更改模板,每次模板更改(几乎每一次)都会因为PHP Fatal error: Call to undefined function _smarty_tplfunc_f0cb5c08ca1726d224308f2f6bd56b4f_0() in ...而导致网站崩溃。PS:是的,我们正在使用$smarty->compile_check来立即查看模板更改。
为了修复这个错误,我们正在清理所有的网站缓存。我对此感到不舒服!
谁知道,我怎么才能修复它呢?以及为什么每次(几乎每次)更改模板时都会发生此错误。
谢谢。
发布于 2010-07-22 09:03:57
避免这种问题的最好方法是上传到一个临时文件,然后重命名它。这样就不会出现部分文件。
至于为什么每次都会发生,想想吧。每天40万个页面浏览量,平均每秒== 4.6个请求。考虑到我所见过的大多数网站在特定时间内(在白天)的访问量要大得多,我怀疑你会看到每秒10到20个请求。按照这种速率,如果文件写入(由于上传)花费的时间超过0.05秒,则在写入时读取的机会会急剧增加。
所以你的选择(从最健壮到最不健壮。您总是可以执行多个操作):
filemtime()以确定其上次修改的时间。请务必先调用clearstatcache(),这样您就不会得到一个旧的时间)...https://stackoverflow.com/questions/3298218
复制相似问题