假设用户可以订阅其他用户的帖子、标签或他可能想要的任何其他类似标准。
在他的提要上,应用程序返回用户之间相同的“主要提要”,并且还根据他的“订阅”条件提供提要项目(提要通过 API 提供)。
提要数据是一种实体(帖子)。并且该提要处于无限滚动(分页)状态,这增加了额外的复杂性。
如果用户之间的提要相同,缓存是微不足道的,但在个性化提要的情况下,我想不出最好的方法是什么。
每个“页面”都按日期范围(特定日期)偏移。
我能想到的方法之一是:
“相同提要”部分按日期键(某些键表示日期范围)缓存。
个性化的帖子提要项目将单独缓存。然后我根据标准保留帖子 ID 的数组,例如创作用户,或者它被分配给喜欢的标签(用户#1:[10,15,23,64 ...],标签#FOO:[1,2,5 ,10 ...]),并按日期范围分隔它们(根据它们适合的分页部分),然后通过mget/ getMultiby Redis 或 Memcahed 的 id获取这些帖子并返回组合结果。
但是这种方法对我来说有点“不正确”,因为它太复杂了。或者,是否使用微调的 DB(假设在 RAM 中运行,或在其中完全缓冲)而不进行缓存 - 在这种情况下可行(渲染/序列化时间并不重要,因为我几乎将其传递给客户端)?
我寻求平台/缓存层不可知的一般策略建议。
标题说明了一切.也许有一种方法可以被称为def destruct; delete self;end?
努力让Kotlin在日食上运行。
我已经开始了新的毕业设计。按照kotlin网站上的规定添加了依赖性。
构建过程没有错误。
我已经在src / java / main下创建了“ main.kt”文件,其内容如下:
fun main(args: Array<String>) {
println("foo")
}
Run Code Online (Sandbox Code Playgroud)
但是,我有两个问题:1.来自kotlin的任何内容,例如println突出显示为“未解决的参考”。2.我无法运行程序- Error: Could not find or load main class MainKt(右键单击以“ kotlin应用程序”运行的main.kr)
如果我创建“新的Kotlin项目”,则一切正常。
我的Gradle构建脚本:
plugins {
id "org.jetbrains.kotlin.jvm" version "1.1.2-2"
}
repositories {
jcenter()
mavenCentral()
}
dependencies {
//api 'org.apache.commons:commons-math3:3.6.1'
implementation 'com.google.guava:guava:21.0'
testImplementation 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib:1.1.2-2"
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8"
compile "org.jetbrains.kotlin:kotlin-reflect"
testCompile "org.jetbrains.kotlin:kotlin-test"
testCompile "org.jetbrains.kotlin:kotlin-test-junit"
}
sourceSets {
main.java.srcDirs = ['src/main/java']
main.kotlin.srcDirs = ['src/main/java', 'src/main/kotlin']
main.resources.srcDirs = ['src/main/resources']
}
Run Code Online (Sandbox Code Playgroud)
我做错什么了?
如果有帮助,我对Java的知识为零,所以我可能犯了一些小错误。
更新:
安装了一个Spring插件并通过它生成了一个新的Web应用程序,包括gradle。但是科特林在那儿的举止也出乎意料。
起初我无法按原样运行它, …
我们有方法:
def sum(x, y, z)
x + y + z
end
Run Code Online (Sandbox Code Playgroud)
和数组
arr = [1,2,3]
Run Code Online (Sandbox Code Playgroud)
如何将数组传递给sum方法?其实我需要这样的东西:
pseudo
sum(arr.each {|i| i})
Run Code Online (Sandbox Code Playgroud)
不改变方法,如果sum接受splat它就能工作,所以请不要提供总和(arr [0],arr [1],arr [2])