[ RabbitMQ消息丢失 ]


RabbitMQ在每个阶段都有可能使消息发生丢失

我们在这里把他们简单归结为三个层面

层面一 :生产者发送消息没有到达交换机或者没有到达绑定的队列。

层面二:RabbitMQ宕机可能导致的消息的丢失。

层面三:消费者宕机导致消息丢失。

层面一的解决方法常见的是

1.生产者确认机制

RabbitMQ提供了publisher confirm机制来避免消息发送到Mq的过程中丢失,消息发送到Mq以后,会返回一个结果给发送者,表示消息的发送成功。

情况一:发送成功 生产者正常发送消息到队列之后会返回一个publish-confirm ack 这个意思是告诉生产者已经接收到消息了。

情况二:发送失败

< Read more >

[ Django DRF 权限Permissions ]


DjangoObjectPermissions

这个权限类与 Django 的标准对象权限框架相关联,该框架允许对模型进行每个对象的权限。为了使用这个权限类,你还需要添加一个支持对象级权限的权限后端,比如 django-guardian

与 一样,此权限只能应用于具有属性或方法的视图。仅当用户经过身份验证并分配了相关的每对象权限和相关模型权限时,才会授予授权。DjangoModelPermissions.queryset.get_queryset()

POST请求要求用户具有对模型实例的权限。add PUT请求要求用户具有对模型实例的权限。PATCH change DELETE请求要求用户具有

< Read more >

[ DRF排序 ]


django 的 drf排序

先按照formNo, 再title, 再按照created时间倒排序

class EformSchemaLogsViewSet(
                   mixins.RetrieveModelMixin,
                   mixins.ListModelMixin,
                   viewsets.GenericViewSet):

   queryset = EformSchemaLogs.objects.all()
   serializer_class = EformSchemaLogsSeria

< Read more >

[ 公司dockerfile ]


文件内容

# Install apt packages
# RUN apt-get update && apt-get install --no-install-recommends -y \
#   # dependencies for building Python packages
#   build-essential \
#   # psycopg2 dependencies
#   libpq-dev 

# # Requirements are installed here to ensure they will be cached.
# COPY ./requi

< Read more >

[ 算法题 ]


计算重复字符串的数量(移动窗口)

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:

输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"p

< Read more >

[ Sql题目 ]


第二高的薪水

已解答 中等 相关标签 相关企业 SQL Schema Pandas Schema Employee 表:

Column Name Type
id int
salary int

在 SQL 中,id 是这个表的主键。 表的每一行包含员工的工资信息。

查询并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null(Pandas 则返回 None) 。 查询结果如下例所示。

示例 1:

输入: Employee 表:

id salary
1 100
2 200
3 300

输出:

Second

< Read more >