防止Amazon SQS中重复邮件的最佳方法是什么?我有一个等待被抓取的域的SQS.在我向SQS添加新域之前,我可以检查保存的数据,看看它是否最近被抓取,以防止重复.
问题在于尚未抓取的域.例如,如果队列中有1000个域尚未被爬网.任何这些链接都可以再次添加,一次又一次.这使我的SQS膨胀成数十万条主要是重复的消息.
我该如何防止这种情况?有没有办法从队列中删除所有重复项?或者有没有办法在添加消息之前搜索队列中的消息?我觉得任何有SQS的人都必须经历过这个问题.
我可以看到的一个选项是,在将域添加到SQS之前,我是否存储了一些数据.但是,如果我必须将数据存储两次,那么首先会破坏使用SQS的重点.
我有一个Cart模型和一个CartItem模型.该CartItem模型具有ForeignKey的Cart模型.
使用Django Rest Framework我有一个API用户可以显示的视图Cart,显然我希望包含CartItem在respone中.
我像这样设置我的Serializer:
class CartSerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
cartitem_set = CartItemSerializer(read_only=True)
class Meta:
model = Cart
depth = 1
fields = (
'id',
'user',
'date_created',
'voucher',
'carrier',
'currency',
'cartitem_set',
)
Run Code Online (Sandbox Code Playgroud)
我的问题是第二行,cartitem_set = CartItemSerializer(read_only=True).
我得到了AttributeErrors说'RelatedManager' object has no attribute 'product'.('product'是CartItem模型中的一个字段.如果我从产品中排除产品,CartItemSerializer只会在下一个字段中获得一个新的AttributeError,等等.无论我是否只在Serializer中留下1个或所有字段,我都会收到错误.
我的猜测是,由于某种原因,Django REST Framework不支持添加Serializers来反转这样的关系.我错了吗?我该怎么做?
PS
我想使用它的原因CartItemSerializer()是因为我想控制响应中显示的内容.
我有一个抓取工具,抓取几个不同的域以获取新帖子/内容.内容总量为数十万页,每天都会添加大量新内容.因此,为了能够浏览所有这些内容,我需要我的爬虫全天候爬行.
目前我将爬虫脚本托管在与爬虫正在添加内容的站点相同的服务器上,并且我只能在夜间运行cronjob来运行脚本,因为当我这样做时,网站基本上停止工作,因为加载脚本.换句话说,一个非常糟糕的解决方案.
所以基本上我想知道这种解决方案的最佳选择是什么?
是否有可能继续从同一主机运行爬虫,但以某种方式平衡负载,以便脚本不会杀死网站?
我将寻找什么样的主机/服务器来托管爬虫?除普通网络主机外,我还需要其他任何规格吗?
抓取工具会保存抓取的图像.如果我在辅助服务器上托管我的爬虫,如何将我的图像保存在我的站点的服务器上?我想我的上传文件夹上不需要CHMOD 777,并允许任何人将文件放在我的服务器上.
我正在尝试从Material.io复制此动画:
要像上面示例中第一张卡片上的点击一样导航高度很简单.只是动画高度属性.问题在于点击第二张卡然后将其他卡推开.
对此的一个解决方案是使用滚动来模拟事物被推开的效果.因此,当您单击该项目时,它通过设置高度动画使其更高,但同时也滚动视图.
我的问题:我似乎无法弄清楚如何使用动画滚动@angular/animations.我不能使用style({ scrollTop: 100 }),它只允许根据文档的 CSS属性.
我该如何实现这一目标?如果我animate()出于维护原因可以将其作为动画的一部分来进行(将整个动画保留在代码中的1个位置),那将是很好的,但如果只能使用单独的方法,我猜这也是可以接受的.
我有一个包含三个 git 存储库和应用程序的堆栈:
它们都与一个docker-compose.yml文件一起工作,该文件还包含部署应用程序所需的其他资源和图像。
当我部署应用程序时,我只需要推送docker-compose.yml文件,或者在 AWS 的情况下它将是一个Dockerrun.aws.json文件。所以我的问题是......我应该在哪里保存这个文件?它不属于上述任何存储库,因为它编排了所有存储库。
我应该设置一个名为“部署存储库”的第四个存储库来保存我的所有部署文件和配置吗?或者我是否从上面选择一个我决定是“我部署的存储库”的存储库,我将所有这些存储在其中?或者我是否可能将部署的副本存储在所有存储库中,以便无论我在哪个存储库上工作,我都可以部署完整的应用程序?
我遇到了诸如Josefin Sans等字体的问题,其中文本上方和下方的空间不均匀.这使得无法垂直对齐文本.
看看这个http://jsfiddle.net/G5aVK/.
HTML
<div class="text">
Hello World
</div>
<div class="text2">
Hello World
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.text{
font-family: 'Josefin Sans';
font-size: 36px;
background: #ff0000;
margin-bottom: 10px;
}
.text2{
font-family: serif;
font-size: 36px;
background: #ff0000;
margin-bottom: 10px;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,正常的衬线字体在div中与垂直中心对齐.但是Josefin Sans不是,它在每个字母之上的空间比在下面还要多.
有没有什么办法解决这一问题?是否有任何方法使用CSS或Javascript更改上方和字体下方的高度?如果您尝试行高,您将看到它无法解决问题.
编辑:很多建议似乎是快速修正,只能解决这个字体大小,正是这个字体等等.我需要一个适用于不同字体和大小的解决方案,因为这种情况下的内容是由用户生成的,所以我无法控制他们将使用的大小或字体.
因此,如果谈论伪代码,我会寻找的解决方案将是"font-vertical-align:middle"或类似的东西.但也许解决这个问题的唯一方法就是做一些丑陋的像素特定修复.
这似乎是一项非常简单的任务,但我在做正确的事情时遇到了困难.
我的SQL查询看起来像这样:
self.link = self.db.cursor(pymysql.cursors.DictCursor);
self.link.execute("SELECT * FROM crawler_data WHERE id=%d" % id_crawl)
Run Code Online (Sandbox Code Playgroud)
我想通过以下方式访问列:
row = self.link.fetchall()
if row["address"]:
self.address = self.filterAddress(row["address"])
Run Code Online (Sandbox Code Playgroud)
我收到了错误"list indices must be integers, not str".
当我打印row我得到以下结构返回:
{u'address': 'Address Value', u'domain': 'Domain Value'}
Run Code Online (Sandbox Code Playgroud)
如何访问"地址"字符串?
我正在进行HTTP PUT调用以使用嵌套关系更新对象的数据,并且遇到以下错误:
HTTP 400错误请求
"带有这个slug的AttributeChoice已经存在."
这是令人困惑的原因是因为我正在HTTP PUT打电话,我希望它把它视为一个UPDATE而不是一个CREATE.
我的模型看起来像这样:
class Attribute(models.Model):
name = models.CharField(max_length=100)
text_input = models.BooleanField(default=False)
slug = models.SlugField(unique=True)
class AttributeChoice(models.Model):
attribute = models.ForeignKey(Attribute)
value = models.CharField(max_length=100)
slug = models.SlugField(unique=True)
Run Code Online (Sandbox Code Playgroud)
我的Serializers看起来像这样:
class AttributeChoiceSerializer(serializers.ModelSerializer):
class Meta:
model = AttributeChoice
fields = '__all__'
extra_kwargs = {'id': {'read_only': False}}
class AttributeSerializer(serializers.ModelSerializer):
attributechoice_set = AttributeChoiceSerializer(many=True)
class Meta:
model = Attribute
fields = ('id', 'name', 'text_input', 'slug', 'attributechoice_set')
def update(self, instance, validated_data):
choice_data = validated_data.pop('attributechoice_set')
for choice …Run Code Online (Sandbox Code Playgroud) 我正在使用Angular的Ngx-datatable. https://github.com/swimlane/ngx-datatable
它的加载数据没有任何问题.
每当我将鼠标指针移到数据行上时,我遇到的问题是ngx-datadatable.
无论如何我可以禁用它吗?
我有一个名为MyUser的自定义用户类.它在本地工作正常,包括注册,登录等.我正在尝试将我的应用程序部署到AWS Elastic Beanstalk,并且我在创建超级用户时遇到了一些问题.
我尝试制作一个脚本文件并按官方AWS指南建议的那样运行它.没有用,所以我决定尝试这里建议的辅助方法,并创建一个自定义manage.py命令来创建我的用户.
部署时,我在日志中收到以下错误.
[Instance: i-8a0a6d6e Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: [CMD-AppDeploy/AppDeployStage0/EbExtensionPostBuild] command failed with error code 1: Error occurred during build: Command 02_createsu failed.
[2015-03-10T08:05:20.464Z] INFO [17937] : Command processor returning results:
{"status":"FAILURE","api_version":"1.0","truncated":"false","results":[{"status":"FAILURE","msg":"[CMD-AppDeploy/AppDeployStage0/EbExtensionPostBuild] command failed with error code 1: Error occurred during build: Command 02_createsu failed","returncode":1,"events":[]}]}
[2015-03-10T08:05:20.463Z] ERROR [17937] : Command execution failed: [CMD-AppDeploy/AppDeployStage0/EbExtensionPostBuild] command failed with error code 1: Error occurred during build: Command …Run Code Online (Sandbox Code Playgroud) django ×3
angular ×2
javascript ×2
python ×2
amazon-ec2 ×1
amazon-sqs ×1
css ×1
docker ×1
git ×1
hosting ×1
jquery ×1
mouseevent ×1
performance ×1
pymysql ×1
render ×1
rest ×1
web-crawler ×1
webserver ×1