Python cassandra中的重复行

Python cassandra中的重复行,python,jenkins,cassandra,celery,Python,Jenkins,Cassandra,Celery,我得到了一个将数据发布到Cassandra表的方法。不知何故,我能够(有时)添加不应该发生的重复行。下面是我为此编写的方法。我正在检查这个名字是否已经存在,如果已经存在,就不应该发布任何数据 我有什么明显的遗漏吗 print(args) jm = Jenkins() #print(json.dumps(args, sort_keys=True, indent=4)) for i in args: jm.name = i['fullDisplayN

我得到了一个将数据发布到Cassandra表的方法。不知何故,我能够(有时)添加不应该发生的重复行。下面是我为此编写的方法。我正在检查这个名字是否已经存在,如果已经存在,就不应该发布任何数据

我有什么明显的遗漏吗

    print(args)
    jm = Jenkins()
    #print(json.dumps(args, sort_keys=True, indent=4))

    for i in args:
        jm.name = i['fullDisplayName']
        jm.result = i['result']
        jm.jobnumber = str(i['id'])
        jm.executor = i['executor']
        jm.duration = str(i['duration'])
        jm.time_stamp = str(i['timestamp'])
        jm.url = i['url']
        jm.id = str(uuid.uuid4())

        check_if_table_is_empty = len(Jenkins.objects.all())
        if (check_if_table_is_empty is 0):
                Jenkins.create(name=jm.name, result=jm.result, jobnumber=jm.jobnumber, executor=jm.executor,
                                      duration=jm.duration, time_stamp=jm.time_stamp, url=jm.url, id=jm.id)
                return jm.id
        else:
                for data in Jenkins.objects.all():
                        if (data['name'] == jm.name):
                                return data['id']
                        else:
                                jm.save()
                                return jm.id



 id                                   | duration | executor | jobnumber | name                       | result  | time_stamp    | url
--------------------------------------+----------+----------+-----------+----------------------------+---------+---------------+---------------------------------------------------------
 5dd7ba97-fd93-4a54-bce6-002502f0e96b |     7912 |     null |        10 | alten-training-develop #10 | ABORTED | 1530273379763 | **********************
 7d8209f3-d5fd-4fa3-9c6c-1f5030928407 |    30222 |     null |         6 |        adbridge-develop #6 | FAILURE | 1529907888157 |        **********************
 a43f00df-a6cf-45d9-9190-fe06cfa28327 |    30222 |     null |         6 |        adbridge-develop #6 | FAILURE | 1529907888157 |        **********************






 servicename            | address              | matchtype  | samplingtype | servicetype
------------------------+----------------------+------------+--------------+-------------
 alten-training-develop | *****.*****.se:8081 | ['RegEx1'] |         HTTP |     Jenkins
       adbridge-develop | *****.****.se:8081 | ['RegEx1'] |         HTTP |     Jenkins


要检查名称是否存在,需要将其作为分区键…,但在输出中,
id
是分区键。。。您可以为该表添加架构吗?类Jenkins(Model):name=columns.Text()id=columns.Text(primary_key=True,default=uuid.uuid4)jobnumber=columns.Text()url=columns.Text()duration=columns.Text()executor=columns.Text()result=columns.Text()time_stamp=columns.Text()在名称列中使用分区键解决它要检查名称是否存在,需要将其作为分区键…,但在输出中,
id
是分区键。。。您可以为该表添加架构吗?类Jenkins(Model):name=columns.Text()id=columns.Text(primary_key=True,default=uuid.uuid4)jobnumber=columns.Text()url=columns.Text()duration=columns.Text()executor=columns.Text()result=columns.Text()time_stamp=columns.Text()使用名称列中的分区键解决了此问题