我正在 Digital Ocean Ubuntu VM 上运行一个独立的 varnish 实例,它基本上工作正常。该设置用于加载位于其他任何地方的旧 wordpress 服务器。这很有效,但我很难清除内容。在谈论清除时,我的意思是使 URL 的缓存无效以强制清漆从后端获取新版本(只是为了确保我看到了对清除/禁止的一些刺激)。
我已经设置了一个用于清除的 ACL,就我在 varnishlog 中看到的而言,清除被接受 - 一方面来自 WordPress 博客(W3TC 处理清除的地方)以及来自我尝试使用 curl 清除的本地控制台的 es - X PURGE http://url.to.purge
问题是,无论我在本地做什么,我仍然会在浏览器中获得旧版本的 URL。
这就是我在 vcl_recv 中处理清除的方式:
if (req.method == "PURGE") {
if (!client.ip ~ purge) {
return(synth(405,"Not allowed."));
}
return (purge);
}
Run Code Online (Sandbox Code Playgroud)
我在每次清除时都会收到 VCL_error(200, Purged) 所以我想这可能没问题。
看来我还是做错了。在重新启动服务清漆后,完整的缓存会刷新,页面也会刷新 - 在此之前清漆会保留所有内容 - 无论我清除多少。
我的清漆版本是 4.0.3。
任何的想法?
谢谢,
坦率
我相信一定有更好的方法将00:04:11.723像这样的字符串转换为微秒:
ms = timestring.split('.')
pt = ms[0].split(':')
sec = int(pt[0]) * 3600 + int(pt[1]) * 60 + int(pt[2])
st = sec * 1000 + int(ms[1])
Run Code Online (Sandbox Code Playgroud)
但我还没找到。
我正在寻找一种从用户表中选择用户的方法,该用户表在另一个表中至少有一个相关条目。也许我的加入方法是完全错误的,但这就是我正在尝试的,应该让您了解结构:
SELECT users.`id`, users.`email`, users.`username`, users.`status`, users.`date_reg`
FROM dir_editors as users
JOIN dir_links as links ON (links.`id_editor` = users.`id`)
WHERE COUNT(links.`id_editor`) > 1
Run Code Online (Sandbox Code Playgroud)
因此,目标是从表中至少有一个链接条目的用户获取所有这些用户数据,dir_links其中id_editordir_links 表中的字段。
感谢您的帮助
我的 API 将列出一系列播客剧集。列表本身应该被剥离,并且没有很多数据小到足以一次拉出整个列表。这是我的 DRF 序列化器类
class EpisodeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Episode
fields = ('url', 'id', 'title', 'subtitle', 'show_id', 'published_at', 'updated_at')
Run Code Online (Sandbox Code Playgroud)
使用此视图可以正常工作
class EpisodeViewSet(viewsets.ModelViewSet):
queryset = Episode.objects.all().order_by('-published_at')
serializer_class = EpisodeSerializer
Run Code Online (Sandbox Code Playgroud)
`HyperlinkedModelSerializer' 还将剧集链接到他们自己的详细视图,但显然默认使用相同的视图。现在我想要的是在细节视图上更详细,所以我所做的是:
router.register(r'episodes', views.EpisodeViewSet)
router.register(r'episode', views.EpisodeDetailViewSet)
Run Code Online (Sandbox Code Playgroud)
添加了这条路线并创建了一个新视图
class EpisodeDetailViewSet(viewsets.ModelViewSet):
queryset = Episode.objects.all().order_by('-published_at')
serializer_class = EpisodeDetailSerializer
Run Code Online (Sandbox Code Playgroud)
以及使用附加模型的序列化程序以获取更多详细信息
class EpisodeDetailSerializer(serializers.ModelSerializer):
chapters = ChapterMarkSerializer(source='chaptermark_set', many=True)
media = MediaClipSerializer(source='mediaclip_set', many=True)
show = ShowSerializer()
class Meta:
model = Episode
fields = ('url', 'id', 'title', 'subtitle', 'show', 'published_at', 'updated_at','description', 'show_notes', 'cover_image', 'updated_at', 'chapters', 'media')
depth = …Run Code Online (Sandbox Code Playgroud) 这是我的数组的样子
[
{ name: "myname", date: dateObj, value: 2 },
{ name: "othername", date: dateObj, value: 3 },
{ name: "newname", date: dateObj, value: 5 },
]
Run Code Online (Sandbox Code Playgroud)
日期是本机日期对象。
获取最旧日期的一个对象的最聪明方法是什么?有没有比遍历整个数组更好的方法了?