<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[我的总结积累与分享]]></title><description><![CDATA[不积跬步,无以至千里 不积小流,无以成江海]]></description><link>https://blog.youkuaiyun.com/Focus_on_linux</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Focus_on_linux]]></copyright><item><title><![CDATA[Celery 远程停止 worker]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/111690388</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/111690388</guid><author>Focus_on_linux</author><pubDate>Fri, 25 Dec 2020 16:40:38 +0800</pubDate><description><![CDATA[通过 ping 检测所有在线的 worker：

from xxx import app
app.control.ping(timeout=0.5)


根据ping 命令返回的结果停止某个worker

app.control.broadcast('shutdown', destination='worker@example.com')

参考： https://docs.celeryproject.org/en/stable/userguide/workers.html#remote-control
.]]></description><category></category></item><item><title><![CDATA[Django 使用 squashmigrations 合并 migration 文件]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/100560626</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/100560626</guid><author>Focus_on_linux</author><pubDate>Thu, 05 Sep 2019 16:50:13 +0800</pubDate><description><![CDATA[问题：
有的时候我们对Django Models进行了某些修改会导致在新创建数据库时运行之前生成的 migrations 文件报错
解决方案：
思路就是把原来的 migrations 文件删除，重新生成，但要注意线上已有的环境中会记录已运行过的 migrations，直接删除重新生成会导致原有环境 migrate 报错，这时候我们就要使用 squashmigrations，具体步骤如下：

运行 ...]]></description><category></category></item><item><title><![CDATA[使用 curl 发送需要登录的 HTTP POST 请求]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/99444928</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/99444928</guid><author>Focus_on_linux</author><pubDate>Tue, 13 Aug 2019 16:21:31 +0800</pubDate><description><![CDATA[curl --user 'admin:password' -H "Content-Type:application/json" -X POST --data '{"restore_files":[15866260]}' http://127.0.0.1:8000/api/v1/jobs/manual/restore/


]]></description><category></category></item><item><title><![CDATA[Celery 导致 Redis 服务器内存不断增长问题的排查]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/98963393</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/98963393</guid><author>Focus_on_linux</author><pubDate>Fri, 09 Aug 2019 15:58:46 +0800</pubDate><description><![CDATA[最近上线了一个Django + Celery的项目，使用Redis做broker，但发现Redis所在的服务器内存使用量会缓慢增长，大概2个星期左右内存耗尽，Redis进程挂掉，所有的Worker也都停止工作。
我的服务器内存是8GB，正常情况 Redis 服务器的内存只使用1GB左右。
查了下内存监控，历史数据如下：

最一开始怀疑是 Django settings 中的 DEBUG 设置成了 ...]]></description><category></category></item><item><title><![CDATA[Django 的 ForeignKey 与数据库的 FOREIGN KEY约束]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/90521503</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/90521503</guid><author>Focus_on_linux</author><pubDate>Fri, 24 May 2019 18:48:15 +0800</pubDate><description><![CDATA[数据库在高并发的场景下使用外键约束会有锁问题并且使用外键会增加运维成本，所以很多公司都规定生产环境的数据库禁止使用外键。
那么不使用外键约束的情况下使用 Django ORM 如何实现关联查询两个表呢？这曾是困扰我很久的一个问题，今天终于找到了答案，写出来分享一下。
Django 的 ForeignKey 和数据库的 FOREIGN KEY 并不一样。Django 的 ForeignKey 是一种...]]></description><category></category></item><item><title><![CDATA[从 Django 项目外引 Django 内部的 app]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/81076925</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/81076925</guid><author>Focus_on_linux</author><pubDate>Tue, 17 Jul 2018 10:33:40 +0800</pubDate><description><![CDATA[# 注意这几行一定要连着写
import os
os.environ.setdefault(&amp;quot;DJANGO_SETTINGS_MODULE&amp;quot;, &amp;quot;your_project_name.settings&amp;quot;)
import django
django.setup()


from django.contrib.auth import get_user_model

User = get_user_mod...]]></description><category></category></item><item><title><![CDATA[pyc文件反编译到Python源码]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/52530022</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/52530022</guid><author>Focus_on_linux</author><pubDate>Tue, 13 Sep 2016 22:05:54 +0800</pubDate><description><![CDATA[将pyc文件反编译成python源代码]]></description><category></category></item><item><title><![CDATA[关于Django的contenttypes数据迁移]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/51566803</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/51566803</guid><author>Focus_on_linux</author><pubDate>Thu, 02 Jun 2016 14:17:52 +0800</pubDate><description><![CDATA[在使用Django开发过程中遇到一个问题，在使用了ContentType、GenericForeignKey、GenericRelation等模块时，如果要使用dumpdata迁移数据，你可能会发现，数据库中django_content_type这张表中模块的id会变化，导致数据乱掉！ 
后来发现，这个锅是没有按Django官方要求来操作导致的，一定要在项目代码里面保存migrations文件。]]></description><category></category></item><item><title><![CDATA[Ansible]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49617293</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49617293</guid><author>Focus_on_linux</author><pubDate>Tue, 03 Nov 2015 15:49:14 +0800</pubDate><description><![CDATA[Ansible要点总结]]></description><category></category></item><item><title><![CDATA[MongoDB的常用操作]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49615913</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49615913</guid><author>Focus_on_linux</author><pubDate>Tue, 03 Nov 2015 14:33:20 +0800</pubDate><description><![CDATA[持续更新中……]]></description><category></category></item><item><title><![CDATA[搭建git服务器之一：Gitlab]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49514929</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49514929</guid><author>Focus_on_linux</author><pubDate>Fri, 30 Oct 2015 18:03:14 +0800</pubDate><description><![CDATA[安装git之Gitlab]]></description><category></category></item><item><title><![CDATA[搭建git服务器之二：gitosis]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49514203</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49514203</guid><author>Focus_on_linux</author><pubDate>Fri, 30 Oct 2015 17:10:18 +0800</pubDate><description><![CDATA[搭建git服务器]]></description><category></category></item><item><title><![CDATA[用uwsgi跑定时任务]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49495139</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49495139</guid><author>Focus_on_linux</author><pubDate>Thu, 29 Oct 2015 18:22:56 +0800</pubDate><description><![CDATA[如果Python程序是用uwsgi启动的，使用uwsgi就可以实现定时任务]]></description><category></category></item><item><title><![CDATA[使用jinja2生成配置文件]]></title><link>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49490743</link><guid>https://blog.youkuaiyun.com/Focus_on_linux/article/details/49490743</guid><author>Focus_on_linux</author><pubDate>Thu, 29 Oct 2015 14:00:54 +0800</pubDate><description><![CDATA[经常会遇到开新服的时候需要修改好多配置文件的情况，刚开始做运维的时候只知道傻傻地手动修改，很痛苦不说还经常会出错误。后来学Django的时候就想到，要是像模板生成页面一样生成配置文件不就好了么，于是我找到了jinja 。]]></description><category></category></item></channel></rss>