代码之家  ›  专栏  ›  技术社区  ›  gshauger

是否有方法以前定义配置流程的时间间隔?

  •  0
  • gshauger  · 技术社区  · 16 年前

    可怕的问题…我知道。

    我正在开发一个处理前一天数据的应用程序。问题是我知道客户最终会要求每小时或其他任意的时间间隔。我知道像Java或SQL这样的语言有定义日期的掩码。那么,如何定义一个时间间隔呢?

    让我这样问。如果有人要求您创建一个可配置的软件,您如何允许用户指定时间间隔?

    更新

    我要找的是文本表示。想象一下有什么东西会被放入配置文件。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Steve Jessop    16 年前

    以下是谷歌应用引擎cron api的配置方式,它比 cron :

    http://code.google.com/appengine/docs/python/config/cron.html#The_Schedule_Format

    Python(和Java?)实现它的源应该在SDK中可用。还没有看到它是多么容易提取,但它至少应该提供一些想法。

    我认为可以根据需要在格式中添加各种内容——它的结构足以扩展。例如,它目前缺少“每小时4分钟过去”的功能,这在Unix中很常见。 克罗恩 但与GAE并不真正相关,因为尽管引擎可能会找出哪些分钟很忙,哪些分钟不忙,并平衡负载,但用户当然不能。

    显然,向普通用户提供类似于自然语言的代码的主要缺点是,他们会认为您的代码是通灵的,并希望它也能理解“除了复活节后的一周以外,每隔一个星期三”或“每当时钟改变时”;—)

        2
  •  1
  •   mafu    16 年前

    我不确定我是否正确理解你的问题。你是不是在想办法输入时间间隔?

    我不知道您的环境,但大多数语言框架都提供一些或多或少复杂的GUI组件。像日历控件之类的东西可能是您要找的?

    编辑:啊,是命令行(或配置文件)。

    • 你能分析一个XML文件吗?在这种情况下,您可以序列化一个时间跨度(大多数语言都有这样的类)。使用可以编辑XML文件,通常只是替换 <minutes> 部分。反序列化此XML文件以再次获得时间跨度很容易。

    • 如果您更喜欢纯文本或命令行输入,就不那么容易了。但是,许多语言都支持某种时间跨度分析(字符串文本、字符串格式)。如果您的环境中存在这个概念,您应该看看。

    • 许多环境提供某种类型的sscanf(),用于解析输入字符串。有时也有“时间”格式。

    • 如果前面的想法没有提供解决方案,您可以尝试使用regex解析日期。这个站点和Web上应该有很多关于这个主题的资源。

    • 如果不喜欢regex,请根据自己的格式规则拆分输入字符串。不过,这是一个很难看的解决方案。

    • 如果你不想用手把用户输入分割得很细,可以使用random.nextint(1000)并希望没有人注意到。0:-)