package com.taobao.metamorphosis.server.utils;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* 系统时间缓存
*
* @author boyan
* @Date 2010-9-28
*
*/
public class SystemTimer {
private final static ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
private static final long tickUnit = Long.parseLong(System.getProperty("notify.systimer.tick", "50"));
static {
executor.scheduleAtFixedRate(new TimerTicker(), tickUnit, tickUnit, TimeUnit.MILLISECONDS);
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
executor.shutdown();
}
});
}
private static volatile long time = System.currentTimeMillis();
private static class TimerTicker implements Runnable {
public void run() {
time = System.currentTimeMillis();
}
}
public static long currentTimeMillis() {
return time;
}
}
分享到:
相关推荐
缓存数据需要设置有效时间,超过这个时间后缓存失效,需要重新生成或更新缓存。时间变更判断是缓存策略的重要组成部分。另外,对于数据内容变更的缓存策略同样重要,当数据库中的数据发生变化时,应该及时更新缓存,...
由于代码片段不完整,并且可能存在OCR扫描错误,实际的完整实现细节可能有所不同,但基于上述描述,这提供了关键概念和实施的理论基础。 在编写和调试实际代码时,开发者需要确保每个步骤都符合内存和资源管理的...
Twig Cache Extension 是一个针对PHP中的Twig模板引擎设计的扩展,主要目标是提高应用程序的性能,通过缓存模板的片段来减少不必要的重复渲染。这个库特别适用于那些使用Twig作为视图层,且对页面加载速度有较高要求...
需要注意的是,实际的存储键是由 `_storageKey` 方法生成的,该方法未在提供的代码片段中给出,但可以推测它是用来添加前缀并可能进行其他处理的。 ### 四、总结 通过以上分析,我们可以看到 `Cache_Abstract` 类...
B站是一个知名的视频分享平台,其客户端在观看视频时会将视频内容缓存到本地文件夹中,这些缓存文件通常是分段的,每个片段对应视频的一小部分。用户可能希望将这些缓存文件合并成完整的视频文件以便离线观看或备份...
2. **基于时间的缓存**:除了内容一致性,还可以设置一个固定的过期时间,比如30分钟、1小时等。在这段时间内,无论请求如何变化,都会返回相同的缓存结果。这种策略适用于那些定期更新但更新周期较长的内容。 3. *...
### 1、页面缓存实现方法 ...最后一个代码片段涉及时间单位的转换,能够将秒数转换为更具体的时间单位,方便在各种需要时间格式化显示的场合使用。这些代码片段对于提高PHP开发的效率和性能都有一定的帮助。
在Linux系统中,当一个文件被打开后,系统会为其分配一定的资源。当文件使用完毕后,需要通过`close`函数释放这些资源,以确保系统资源的有效管理和防止内存泄漏等问题的发生。 虽然提供的代码片段未能完整展示`...
在给定的代码片段中,我们看到一个基于FIFO算法的CPU缓存模拟程序。这个程序旨在测试并评估FIFO缓存算法的性能,尤其是关注其在高并发请求下的表现。代码中包含了大量用于缓存管理的结构体定义和函数,这些是FIFO...
例如,如果你的应用程序缓存了一个数据库查询的结果,并且该结果依赖于特定的数据库表,那么当该表更新时,缓存中的数据也将被清除,防止了旧数据的使用。 .NET缓存主要包括以下几种类型: 1. **Application Cache...
7. **示例代码片段**:虽然具体的源码没有提供,但一个简单的VB清空IE缓存的代码片段可能如下(仅为示例,实际可能需要更复杂的错误处理和权限检查): ```vb Sub ClearCache() Dim objFSO As Object Set objFSO...
接下来,"调用代码示例.txt"文件可能会包含如何在实际应用中调用缓存工厂的代码片段。例如,创建一个缓存工厂实例,然后使用工厂方法获取或设置Redis缓存。这通常涉及到了设计模式,比如工厂模式,以便于根据需求...
例如,以下是一个简单的Java代码片段,展示了如何使用Memcache客户端: ```java import net.spy.memcached.MemcachedClient; public class MemcacheExample { public static void main(String[] args) { try { ...
分布式缓存方案Velocity是微软为了解决大规模分布式系统中的数据缓存问题而推出的一个高效、可扩展的技术。在现代Web应用程序中,缓存是提升性能的关键工具,它减少了数据库的负载,提高了数据读取速度。Velocity...
首先,我们来看第一个代码片段:超级简单的页面缓存。在很多情况下,尤其是对于那些没有使用CMS系统或框架的小型网站,自定义的缓存机制是必不可少的。这段代码提供了一个基本的实现,它创建了一个基于日期的缓存...
Yii框架提供了多种缓存组件,例如CFileCache、CDbCache、CMemCache等,其中CFileCache是一个基本的文件缓存组件,它将缓存数据存储在文件系统中。此外,还有依赖缓存的概念,它使得缓存可以依赖于外部数据的变化而...
而Ehcache则是一个高效的分布式缓存系统,用于提升应用程序性能。这里我们将详细探讨如何集成这三个组件实现二级缓存功能。 首先,**Struts2** 是一个基于MVC设计模式的Web应用框架,它提供了强大的Action类来处理...
缓存是提高应用程序性能的关键技术之一,尤其是在处理大量数据或高流量网站时。第12章主要探讨了在服务器端和客户端实现的缓存策略,特别是在使用 symfony 框架的情况下的应用。 在 symfony 中,服务器端缓存系统...
例如,使用以下代码片段可以添加一个缓存项: ```java Cache cache = CacheManager.getInstance().getCache("myCache"); cache.put(new Element("key", "value")); ``` 此外,Ehcache还支持二级缓存和分布式缓存。...