GithubHelp home page GithubHelp logo

dynamic-marketing's Introduction

dynamic-marketing

Maven项目命名规范

groupId:定义当前Maven项目隶属的实际项目,例如org.sonatype.nexus,此id前半部分org.sonatype代表此项目隶属的组织或公司,后部分代表项目的名称,如果此项目多模块话开发的话就子模块可以分为org.sonatype.nexus.plugins和org.sonatype.nexus.utils等。
特别注意的是groupId不应该对应项目隶属的组织或公司,也就是说groupId不能只有org.sonatype而没有nexus。
artifactId是构件ID,该元素定义实际项目中的一个Maven项目或者是子模块,如上面官方约定中所说,构建名称必须小写字母,没有其他的特殊字符,推荐使用“实际项目名称-模块名称”的方式定义,例如:spirng-mvn、spring-core等。

缓存设计

降低系统对clickhouse的查询并发度,是本系统性能改进的核心关键之处;
在javaee系统开发中,为了降低对底层MySQL等数据库的查询压力,通用的做法是增加缓存层;我们在本系统中,依然可以沿用这个方法;

增加缓存层有意义的原因:
大量不同的运营规则,可能都有相同的"原子查询条件",一旦一个规则查询了一次结果,这个结果可以被多个规则计算共用和反复利用

  • 比如:大量运营规则,查询时间窗口可能完全落在"远期"区间,只要从clickhouse查询了一次结果,这个结果后面可以反复利用;
  • 比如:就算是查询时间窗口是横跨"远近分界点"的,"远期"查询结果也可以反复重用;

使用Redis作为backend:

  • 在subtask、job之间,非常容易共享
  • 在系统故障或者人为重启后,缓存数据自然存续

当前系统的缺点

规则时间条件,支持依次序发生,不能满足更加细化的需求(如下):
A事件后间隔2个事件发生B,A B 之间不能发生C, A连续3次后发生B,等等。且不支持A事件发生后的5分钟内发生B这种定时条件

dynamic-marketing's People

Contributors

sodamnsure avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

ngudeveloper

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.